词条 | 矩形函式 |
释义 | § 介绍 下面三个绘图 函式需要一个指向矩形结构的指标: FillRect (hdc, &rect, hBrush) ; FrameRect (hdc, &rect, hBrush) ; InvertRect (hdc, &rect) ; FrameRect使用画刷画矩形框,但是不填入矩形。使用画刷画矩形看起来有点奇怪,因为对於我们所介绍过的函式(如Rectangle),其边线都是用目前画笔绘制的。FrameRect允许使用者画一个不一定为纯色的矩形框。该边界框为一个逻辑单位元宽。如果逻辑单位大於装置单位,则边界框将会为2个图素宽或者更宽。 InvertRect将矩形中所有图素翻转,1转换成0,0转换为1,该函式将白色区域转变成黑色,黑色区域转变为白色,绿色区域转变成洋红色。 § 说明 Windows还提供了9个函式,使您可以更容易、更清楚地操作RECT结构。例如,要将RECT结构的四个栏位设定为特定值,通常使用如下的程式段: rect.left = xLeft ; rect.top = xTop ; rect.right = xRight ; rect.bottom = xBottom ; 但是,通过呼叫SetRect函式,只需要一道叙述就可以得到同样的结果: SetRect (&rect, xLeft, yTop, xRight, yBottom) ; 在您想要做以下事情之一时,可以很方便地选用其他8个函式: 将矩形沿x轴和y轴移动几个单元: OffsetRect (&rect, x, y) ; 增减矩形的尺寸: InflateRect (&rect, x, y) ; 矩形各栏位设定为0: SetRectEmpty (&rect) ; 将矩形复制给另一个矩形: CopyRect (&DestRect, &SrcRect) ; 取得两个矩形的交集: IntersectRect (&DestRect, &SrcRect1, &SrcRect2) ; 取得两个矩形的联集: UnionRect (&DestRect, &SrcRect1, &SrcRect2) ; 确定矩形是否为空: bEmpty = IsRectEmpty (&rect) ; 确定点是否在矩形内: bInRect = PtInRect (&rect, point) ; 大多数情况下,与这些函式相同作用的程式码很简单。例如,您可以用下列叙述来替代CopyRect函式呼叫: DestRect = SrcRect ; |
随便看 |
百科全书收录594082条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。