我创建了一个从CDialogEx继承的公共对话框类(CCommonDlg)。
现在我从CCommonDialog继承了CMyDialog。将CMyDialog对话框资源ID传递给基类CCommonDialog。我正在尝试在对话框上绘制一个圆圈。所以在CMyDialog::OnPaint()
我尝试了以下代码:
CPaintDC dc(this);
CRect rect;
GetWindowRect(&rect);
ScreenToClient(rect);
dc.Ellipse(rect);
在跑步的同时,我正在看到更大圈子的一部分。它不适合对话。所以我相信GetWindowRect没有给我正确的对话维度。
任何人都可以请帮助。 注意:CommonDlg是一个DLL,CMyDlg是另一个DLL。 感谢
答案 0 :(得分:1)
使用此代码。
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect); //to get client area only
dc.Ellipse(rect);
您正在使用的功能,GetWindowRect(&rect);
它还会包含您窗口的标题栏,因此在该区域中您的Ellipse
将被剪裁。因此,您只需在客户区绘图时,应使用GetClientRect(&rect);