网上流传的简单实现方法有两种:
方法一:
在OnInitDialog() 添加:
SetWindowLong(m_hWnd,GWL_HWNDPARENT,NULL);
CRgn m_rgn;
RECT rc;
GetWindowRect(&rc);
m_rgn.CreateRoundRectRgn(rc.left,rc.top,rc.right,rc.bottom,100,100);
SetWindowRgn(m_rgn,TRUE);
测试只适用于主对话框
方法二:
在对话框或者文档的框架类中添加WM_SIZE消息响应代码代码如下即可实现圆角矩形窗口
CRgn rgn;
CRect rc;
GetWindowRect(&rc); //获得窗口矩形
rc -= rc.TopLeft();
rgn.CreateRoundRectRgn(rc.left, rc.top, rc.right, rc.bottom, 15, 15); //根据窗口矩形创建一个圆角矩形最后两个是形成圆角的大小
SetWindowRgn(rgn, TRUE);
测试适用于子对话框窗口
方法一:
在OnInitDialog() 添加:
SetWindowLong(m_hWnd,GWL_HWNDPARENT,NULL);
CRgn m_rgn;
RECT rc;
GetWindowRect(&rc);
m_rgn.CreateRoundRectRgn(rc.left,rc.top,rc.right,rc.bottom,100,100);
SetWindowRgn(m_rgn,TRUE);
测试只适用于主对话框
方法二:
在对话框或者文档的框架类中添加WM_SIZE消息响应代码代码如下即可实现圆角矩形窗口
CRgn rgn;
CRect rc;
GetWindowRect(&rc); //获得窗口矩形
rc -= rc.TopLeft();
rgn.CreateRoundRectRgn(rc.left, rc.top, rc.right, rc.bottom, 15, 15); //根据窗口矩形创建一个圆角矩形最后两个是形成圆角的大小
SetWindowRgn(rgn, TRUE);
测试适用于子对话框窗口