关于CRgn类
来源:互联网 发布:js的同源策略 编辑:程序博客网 时间:2024/06/10 01:42
CRgn类是CGdiObject的一个派生类
一)关于CRgn对象创建
ps:CRgn类的构造函数只有一个,定义一个CRgn对象后,必须调用初始化函数进行初始化才能使用。
A:初始化矩形区域
BOOL CreateRectRgn(int x1,int y1,int x2,int y2);
BOOL CreateRectRgnIndirect(LPCRECT lpRect);
B:初始化椭圆区域
BOOL CreateEllipticRgn(int x1,int y1,int x2,int y2);
BOOL CreateEllipticRgnIndirect(LPCRECT lpRect);
C:初始化多边形区域
BOOL CreatePolygonRgn(LPPOINT lpPoints,int nCount ,int nMode);
ps:lpPoints指向一个POINT结构或CPoint对象数组;nCount是多边形区域顶点的数目;nMode是多边形的填充模式,可选用参数ALTERNATE或WINDING。
D:初始化一个包含一系列多边形的区域
BOOL CreatePolyPolygonRgn(LPPOINT lpPoints,LPINT lpPolyCounts,int nCount,int nPolyFillMode);
ps:创建的多边形可独立也可相交。lpPoints指向一个POINT结构数组或CPoin对象数组,数组中的每个结构或对象用来表示一个顶点的坐标。参数lpPolyCounts是一个整数数组,存储的是各个多边形的顶点数。参数nCount表示区域中多边形的数目,即lpPolyCounts数组的项数。参数nPolyFillMode表示填充模式。
eg:
CRgn m_Rgn;POINT point[12]; //定义一个POINT结构数组... //输入坐标数值 int nCount[3];nCount[0] = 3;nCount[1] = 4;nCount[2] = 5; //区域中各个多边形的顶点数目m_Rgn.CreatePolyPolygonRgn(point,nCount,3,0); //初始化区域对象//ps:以上代码初始化一个包含三个多边形的区域,三个多边形的顶点数分别是3、4、5,结构数组point中存放的是顶点坐标,一共12个顶点。
二)关于CRgn对象删除
m_Rgn.DelectObject();
三)关于CRgn对象常用操作
A:通过已存在的2个对象初始化新的对象
int CombineRgn(CRgn* pRgn1,CRgn* pRgn2, int nCombineMode);
ps:参数nCombineMode为操作模式。具体如下:
RGN_AND: 以两个区域的相交部分初始化新区域。
RGN_COPY: 初始化一个和第1区域相同的区域。
RGN_DIFF: 用第1区域中没有与第2个区域相交的部分初始化区域。
RGN_OR: 初始化一个包含两个区域的区域。
RGN_XOR: 初始化一个包含两个区域,但不包含两个区域相交部分的区域。
返回值:
COMPLEXREGION: 区域覆盖边界。
ERROR: 操作无效。
NULLREGION: 区域为空。
SIMPLEREGION: 区域没有覆盖边界。
B:用一个存在的区域复制初始化当前的区域
int CopyRgn(CRgn* pRgnSrc);
C:判断2个区域是否相同
BOOL EqualRgn(CRgn* pRgn);
D:移动区域
int OffsetRgn(int x,int y); //x,y代表横向及纵向移动量
int OffsetRgn(POINT point); //返回值含义同CombineRgn
E:获取区域边界矩形
int GetRgnBox(LPRECT lpRect);
F:判断一个点是否在区域中
BOOL PtInRegion(int x,int y);
BOOL PtInRegion(POINT point);
G:判断一个区域是否在区域中
BOOL RectInRegion(LPCRECT lpRect);
四)关于CRgn对象的引用
A:使区域无效并重绘
InvalidateRgn(&m_Rgn);
- 关于CRgn类
- 区域类CRgn
- 使用CRgn和CFont类
- crgn相关
- CRgn::CreateEllipticRgnIn
- CRgn::CreateEllipticRgn
- 图形设备接口类,GDI类:CPen, CBrush,CFont,CBitmap,CRgn,CPalette等
- About the class Crgn
- windows绘图-区域CRgn
- mfc CRgn 画椭圆对话框
- CRgn几种创建方法,不规则窗体
- CRgn几种创建方法,不规则窗体
- CRgn几种创建方法,不规则窗体
- CRgn绘制扇形并响应鼠标move
- The study of Programming Windows with MFC--CRgn
- 将CRgn rgn对象以图片形式输出便于查看
- C++/MFC-GDI绘图之CRgn区域,CFile
- 使用CRgn::CombineRgn判断两个区域是否有共同的覆盖区域
- 1s钟闪烁一次设计的bug。
- Struts中的hello world
- 黑马程序员_泛型
- 查看ubuntu版本号
- Linux ffmpeg命令的使用
- 关于CRgn类
- ASP.NET MVC CodePlex Preview 4 安装包,代码及更新内容说明
- SQL Server 2008 实施查询优化建议
- 词库不如搜狗???搜狗常用词库导入到Google,让它完胜搜狗吧!
- android 实现GridView多选效果
- mySql查看和修改字符编码
- 存款分析
- 20款英文LOGO字体
- JavaScript 21个使用小技巧