MFC获取对话区域

时间:2015-02-24 13:37:44

标签: mfc

我创建了一个从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。 感谢

1 个答案:

答案 0 :(得分:1)

使用此代码。

CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);  //to get client area only
dc.Ellipse(rect); 

您正在使用的功能,GetWindowRect(&rect);
它还会包含您窗口的标题栏,因此在该区域中您的Ellipse将被剪裁。因此,您只需在客户区绘图时,应使用GetClientRect(&rect);