我有一个CFrameWndEx与几个停靠CDockablePanes,但我似乎无法得到通知当停靠窗格的大小更改(所以我可以调整我的其他窗口相应)。试图Spy ++检查消息,但自定义绘制似乎是唯一的(这似乎不合适),并试图覆盖RecalcLayout,但这不是在这种情况下调用。 OnSize不起作用,因为框架本身的大小没有改变。有任何想法吗?MFC:FrameWnd如何知道停靠窗格何时调整大小?
(PS:我敢肯定这是可能的,因为我曾经有一个拆分窗口的“客户”区域,它会神奇地调整自己当窗格被调整)
这是在什么我有一个明确的改善现在得到了,并解决了所描述的具体问题(即通知)。然而,这里显示的代码在我的应用程序中不起作用,因为它'觉得'对接管理器在这个被调用的位置还没有'解决'。所以当我停靠在主窗口的工具栏时,它不能正确绘制。如果我将GetClientAreaBounds和MoveWindow分隔成由此函数触发的定时器回调,那么它“起作用”。 – hunter 2013-06-14 17:27:09
我也有一些重绘问题,在我的情况下,从窗口所在的CDockablePane中移除WS_CLIPCHILDREN来解决它。基本上在我的CMainFrame :: OnCreate中,我执行以下操作:DockPane(&m_Pane1); CDockablePane * pTabbedBar = NULL; (&m_Pane1,DM_SHOW,TRUE,&pTabbedBar); pTabbedBar-> ModifyStyle(WS_CLIPCHILDREN,0); – Roel 2013-07-17 13:57:57