CRgn类封装了图形设备接口的区域,他能够实现对与区域的很多操作。
class CRgn : pulbic CGdiobject
有一个公共的构造函数CRgn::CRgn
包含的公共方法:
设置 CRgn 对象,以便使用两个指定的 CRgn 对象联合等效。 | |
设置 CRgn 对象,以便为指定的 CRgn 对象的副本。 | |
初始化一个省略区域的一 CRgn 对象。 | |
初始化 RECT 结构定义一个省略区域的一 CRgn 对象。 | |
创建从特定区域和转换数据的区域。 | |
创建从中选择到特定设备上下文的路径的区域。 | |
初始化多边形区域的一 CRgn 对象。 该系统通过绘制线条如果需要,自动闭合多边形,从最后一个顶点到第一。 | |
初始化包含一系列的闭合多边形的区域的一 CRgn 对象。 多边形可能是相交,也能重叠。 | |
初始化一个矩形区域的一 CRgn 对象。 | |
初始化 RECT 结构定义的矩形区域的一 CRgn 对象。 | |
初始化一个矩形区域的一 CRgn 对象带圆角。 | |
检查两 CRgn 对象以确定它们是否等效。 | |
返回指向 CRgn 对象,同时使处理Windows区域。 | |
用描述给定区域的数据填充指定的缓冲区。 | |
检索 CRgn 对象的边框的坐标。 | |
按指定的偏移量移动 CRgn 对象。 | |
确定指定的点是否位于该区域。 | |
确定一个指定矩形的任何部分是否在该区域的范围内。 | |
设置到指定的矩形区域的 CRgn 对象。 |
公共运算符
名称 | 说明 |
---|---|
返回在 CRgn 对象包含的Windows句柄。 |
目前,我所用到了两个其中两个函数
第一个是创建多边形区域的CreatePolygonRgn函数,其原型如下:
BOOL CreatePolygonRgn(
LPPOINT lpPoints,其中起一个参数是点类CPoint的对象或Point结构体对象,一般都为对象数组
int nCount,多边形的点数即在CPoint对象的个数
int nMode //模式,可选ALTERNATE或WINDING两个
);
创建完之后,需要使用Deleteobject进行删除。直接使用此函数来创建多边形比使用MoveTo和LineTo方便,而且可以方便的对多边形区域进行下一步的填充
填充颜色的话,使用的是CDC类中的FillRgn()函数,一下是该函数的原型
BOOL FillRgn(
CRgn* pRgn,//区域对象的指针
CBrush* pBrush //画刷
);
第二个函数是创建一个省略区域,其中四个参数分别为区域的左上角的坐标和右下角的坐标。
BOOL CreateEllipticRgn(
int x1,
int y1,
int x2,
int y2
);