Windows 中不规则窗体的编程实现
2006-07-19 11:29:53 来源:WEB开发网核心提示: 在MFC中"region"对象,由CRgn类实现,Windows 中不规则窗体的编程实现(2),CRgn的几乎每个成员函数都有同名的SDK API函数对应,三、简单“region”的创建类CRgn创建一个新的"region"的
在MFC中"region"对象,由CRgn类实现。CRgn的几乎每个成员函数都有同名的SDK API函数对应。
三、简单“region”的创建
类CRgn创建一个新的"region"的简单方法有以下几个成员函数:
- BOOL CRgn::CreateRectRgn( int x1, int y1, int x2, int y2 ); 创建矩形的“region”。
- BOOL CRgn::CreateEllipticRgn( int x1, int y1, int x2, int y2 ); 创建圆形或椭圆形“region”。
- BOOL CRgn::CreateRoundRectRgn( int x1, int y1, int x2, int y2, int x3, int y3 ); 创建圆角矩形“region”。
- BOOL CRgn::CreatePolygonRgn( LPPOINT lpPoints, int nCount, int nMode ); 创建多边形“region”。
这里以创建椭圆窗体为例,介绍椭圆窗体创建的方法。在创建椭圆“region”的CreateEllipticRgn函数中,x1,y1指椭圆所在矩形的左上角坐标,x2,y2指该矩形的右下角坐标。
下面的代码加入到MFC对话框程序的OnInitDialog函数中,可将该对话框变成椭圆窗体:
BOOL CTestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
...
CRgn rgn;
rgn. CreateEllipticRgn(0,0,200,100);
SetWindowRgn(rgn,TRUE);
}
四、作图路径法创建”region”
使用该方法创建”region”的过程如下:
第一步绘制所要创建的窗体形状。
该步骤中使用到CDC类中的一些成员函数如下:BOOL CDC::BeginPath( );
调用该函数后当前设备环境(DC)开始追踪绘图的过程。
更多精彩
赞助商链接