如何知道工具栏的停靠状态何时更改



有人问了一个类似的问题@检测CControlBar的停靠状态何时发生了变化,但答案是从控件的角度写的。 我想知道停靠状态何时从 CFrameWnd 更改,因为我有一个窗口填充了工作区,每当停靠状态更改时都需要重新定位。 我当前的WM_SIZE代码有效,但如果工具栏停靠或取消停靠,则不起作用。

您可以覆盖CFrameWndExAdjustDockingLayout函数。 每次更改对接布局时都会调用它。

MSDN 信息:

注意: 在创建停靠窗口期间,对此函数有多个调用(您可能希望忽略它们(。

void CMainFrame::AdjustDockingLayout(HDWP hdwp)
{
CMDIFrameWndEx::AdjustDockingLayout(hdwp);
// do some calulations
}

最新更新