【发布时间】:2015-05-01 14:48:24
【问题描述】:
我从对话框属性创建了一个基于对话框的应用程序,我删除了标题栏并设置了无边框。然后我使用 MOveWindow() 修改了对话框大小并将对话框形状更改为多边形区域和应用的框架区域。它工作正常。
但是当我创建一个基于对话框的应用程序编程时,我删除了标题栏和对话框框架,如下所示:
ModifyStyle(WS_CAPTION,0);
ModifyStyle(WS_DLGFRAME,0)
-
然后,我使用 MOveWindow() 以编程方式修改了对话框大小,并将对话框形状更改为多边形区域并应用了框架区域。该框架未出现在对话框周围。它只在左侧和顶部。
BOOL CDialogShapeDlg::OnInitDialog() { CDialogEx::OnInitDialog();
ModifyStyle(WS_CAPTION,0); ModifyStyle(WS_DLGFRAME,0); CRect rect; GetClientRect(&rect); MoveWindow(rect.left,rect.top,400,500); GetClientRect(&rect); CPoint vertex[4]; vertex[0] = CPoint(rect.left,rect.top); vertex[1] = CPoint(rect.right,rect.top); vertex[2] = CPoint(rect.right,rect.bottom); vertex[3] = CPoint(rect.left,rect.bottom); rgn.CreatePolygonRgn(vertex,4,ALTERNATE); HGDIOBJ hRgn = rgn.Detach(); ::SetWindowRgn(GetSafeHwnd(), (HRGN)hRgn, TRUE); rgn.CreatePolygonRgn(vertex,4,ALTERNATE); return TRUE;}
void CDialogShapeDlg::OnPaint() { CPaintDC dc(这个); CBrush *pBrush = new CBrush(RGB(255,0,0)); dc.FrameRgn(&rgn,pBrush,1,1); }
请帮忙。 谢谢
【问题讨论】: