【发布时间】:2010-07-21 19:48:26
【问题描述】:
我有一个带有对话框栏的 CFrameWnd,我想确定可绘制区域(不包括对话框栏使用的空间),这样我就可以在其中绘制而不会被对话框栏重叠。我怎样才能做到这一点? GetClientRect() 似乎也覆盖了客户矩形区域,我在文档中看不到任何其他明显的候选者。
【问题讨论】:
标签: user-interface mfc coordinates toolbar
我有一个带有对话框栏的 CFrameWnd,我想确定可绘制区域(不包括对话框栏使用的空间),这样我就可以在其中绘制而不会被对话框栏重叠。我怎样才能做到这一点? GetClientRect() 似乎也覆盖了客户矩形区域,我在文档中看不到任何其他明显的候选者。
【问题讨论】:
标签: user-interface mfc coordinates toolbar
我很确定Cwnd::RepositionBars 方法应该提供您需要的信息。下面的代码对你有用吗?
CRect rcClient;
pFrameWnd->RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0, CWnd::reposQuery, &rcClient);
【讨论】:
WM_PAINT 上调用它?
我在使用 CDockablePane 时遇到了类似的问题,我用
解决了这个问题CRect rc;
GetDockingManager()->GetClientAreaBounds(rc);
但我也遇到了无法找到消息或回调以知道何时触发的问题。
【讨论】: