请输入您要查询的百科知识:

 

词条 矩形函式
释义

§ 介绍

下面三个绘图 函式需要一个指向矩形结构的指标:

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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/11/11 11:29:12