winapi - 如何知道工具栏的停靠状态何时发生变化
问题描述
有人问过类似的问题@Detecting when a CControlBar's docking state has changed,但答案是站在控件的角度写的。我想知道停靠状态何时从 CFrameWnd 发生变化,因为我有一个填充客户区的窗口,每当停靠状态发生变化时都需要重新定位该窗口。我当前的 WM_SIZE 代码有效,但如果工具栏停靠或取消停靠,则无效。
解决方案
您可以覆盖AdjustDockingLayout
. CFrameWndEx
每次更改停靠布局时都会调用它。
注意:在创建停靠窗口期间,会多次调用此函数(您可能希望忽略它们)。
void CMainFrame::AdjustDockingLayout(HDWP hdwp)
{
CMDIFrameWndEx::AdjustDockingLayout(hdwp);
// do some calulations
}
推荐阅读
- angular - Angular Form数组重复字段问题
- c - 将 ptrdiff_t 的正值分配给 size_t 是否安全
- java - 来自外部 api 的 @Autowiredl bean 始终为 nul
- vba - VBA 用户窗体 - 运行时错误 1004 '应用程序定义或对象定义错误'
- python - 在 Anaconda 中安装 pyspec 模块
- c++ - 与 VS2017 和 FFMPEG 4 完全矛盾的未解决的外部符号 + 未使用的库
- c++ - Direct3D 和 DXGI 之间的区别
- javascript - 如何在Angular中扁平化json?(1级下降)
- java - Android:如何在库中正确加载 ViewStub
- jsp - 当我单击特定按钮时如何使用 jsp 和 servlet 传递请求响应对象