在OnInitDialog进行窗体形状的设置
BOOL CTestWindowDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
//取消标题栏
SetWindowLong(this->m_hWnd, GWL_STYLE, WS_OVERLAPPED);
//设置窗体区域
CRgn rgn;
CRect rect;
GetClientRect(&rect);
rgn. CreateEllipticRgn(0,0,rect.Width(),rect.Height());
SetWindowRgn(rgn,TRUE);
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
由于窗体形状是椭圆形,因此点击椭圆之外的地方点不到程序
另外的区域创建函数
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”。
对于其它控件,如button,因为也是继承于CWnd类,属于窗口,也可以创建异形窗口,实现不同样式的按钮