我想延迟 CDockablePane 派生窗口的初始化,直到窗口实际显示。如果窗口只是停靠,那么 WM_SHOWWINDOW 非常有效,但是当窗口处于 AutoHideMode WM_SHOWWINDOW 时是不可预测的,我看不到表明滑出已完成的事件。
有什么建议吗?
我想延迟 CDockablePane 派生窗口的初始化,直到窗口实际显示。如果窗口只是停靠,那么 WM_SHOWWINDOW 非常有效,但是当窗口处于 AutoHideMode WM_SHOWWINDOW 时是不可预测的,我看不到表明滑出已完成的事件。
有什么建议吗?
我选择的解决方案是覆盖虚拟方法CDockablePane::ShowPane
何时IsAutoHideMode()
是FALSE
和CDockablePane::OnSlide
何时不是。
尝试覆盖 CDockablePane::CheckStopSlideCondition,将 bSlideDirection 和基类实现的返回值保存在某处
当 nIDEvent 为 AFX_AUTO_HIDE_SLIDE_OUT_EVENT 时,覆盖 CDockablePane::OnTimer 并检查基类实现后保存的值:
注意:AFX_AUTO_HIDE_SLIDE_OUT_EVENT 未记录,可能在未来版本的 MFC 中不可用