如何使用对话栏获取CFrameWnd中的可绘制区域?

时间:2010-07-21 19:48:26

标签: user-interface mfc coordinates toolbar

我有一个带有对话栏的CFrameWnd,我想确定可绘制区域(不包括对话栏使用的空间),这样我就可以在不对话栏重叠的情况下绘制它。我怎样才能做到这一点? GetClientRect()似乎也覆盖了客户端区域,我在分析中没有看到任何其他明显的候选人。

2 个答案:

答案 0 :(得分:1)

我很确定Cwnd::RepositionBars方法应该提供您需要的信息。以下代码是否适合您?

CRect rcClient;
pFrameWnd->RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0, CWnd::reposQuery, &rcClient);

答案 1 :(得分:0)

我遇到了与CDockablePane类似的问题,我用

解决了这个问题
CRect rc;
GetDockingManager()->GetClientAreaBounds(rc);

但我也遇到了无法找到消息或回调知道何时触发它的问题。