【问题标题】:MFC Getting Dialog AreaMFC 获取对话框区域
【发布时间】:2015-02-25 13:29:33
【问题描述】:

我创建了一个继承自 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。 谢谢

【问题讨论】:

    标签: mfc


    【解决方案1】:

    使用此代码。

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

    你正在使用的函数,GetWindowRect(&rect);
    它还将包括您窗口的标题栏,因此在该区域您的Ellipse 将被剪裁。所以你只需要绘制客户区,你应该使用GetClientRect(&rect);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-26
      • 1970-01-01
      • 2012-08-19
      • 2011-08-22
      • 2012-01-05
      相关资源
      最近更新 更多