工控编程吧
标题:
上位机MFC如何改变窗口的形状
[打印本页]
作者:
qq263946146
时间:
2019-7-18 15:01
标题:
上位机MFC如何改变窗口的形状
程序默认窗口形状都是矩形样式。但也可以改变为其他样子,
比如说圆形,不规则等。
可以将下面的4个按钮点击函数放在自己工程中,
运行点击。可以看到4个按钮实现不同形状窗口的设置
矩形,椭圆形窗口,多边形窗口,圆矩形窗口等。
void CDemoDlg::OnTest1()
{
CRect rect;
GetClientRect(rect);
//创建矩形区域
CRgn rgn;
rgn.CreateRectRgn(rect.left, rect.top, rect.right, rect.bottom);
//设置窗口的区域
SetWindowRgn((HRGN)rgn, TRUE);
}
void CDemoDlg::OnTest2()
{
CRect rect;
GetClientRect(rect);
//创建椭圆形区域
CRgn rgn;
rgn.CreateEllipticRgn(0, 0, rect.Width(), rect.Height());
//设置窗口的区域
SetWindowRgn((HRGN)rgn, TRUE);
}
void CDemoDlg::OnTest3()
{
CRect rect;
GetClientRect(rect);
CPoint point[6];
point[0].x = 0;
point[0].y = rect.Height() / 2;
point[1].x = rect.Width() / 3;
point[1].y = 0;
point[2].x = 2 * rect.Width() / 3;
point[2].y = 0;
point[3].x = rect.Width();
point[3].y = rect.Height() / 2;
point[4].x = 2 * rect.Width() / 3;
point[4].y = rect.Height();
point[5].x = rect.Width() / 3;
point[5].y = rect.Height();
//创建多边形区域
CRgn rgn;
rgn.CreatePolygonRgn(point, 6, ALTERNATE);
//设置窗口的区域
SetWindowRgn((HRGN)rgn, TRUE);
}
void CDemoDlg::OnTest4()
{
CRect rect;
GetClientRect(rect);
//创建圆矩形区域
CRgn rgn;
rgn.CreateRoundRectRgn(0, 0, rect.Width(), rect.Height(),
rect.Width() / 2, rect.Height() / 2);
//设置窗口的区域
SetWindowRgn((HRGN)rgn, TRUE);
}
[MFC408]1[/MFC408]
[weixinlianxi]2[/weixinlianxi]
[note]3[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4