工控编程吧

标题: 上位机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