MFC:是不是有事件检测 CDockablePane 派生窗口何时通过滑出或显示打开?
Posted
技术标签:
【中文标题】MFC:是不是有事件检测 CDockablePane 派生窗口何时通过滑出或显示打开?【英文标题】:MFC: Is there an event to detect when a CDockablePane derived window has been opened either by sliding out or showing?MFC:是否有事件检测 CDockablePane 派生窗口何时通过滑出或显示打开? 【发布时间】:2010-12-15 18:17:43 【问题描述】:我想延迟 CDockablePane 派生窗口的初始化,直到窗口实际显示。如果窗口只是停靠,那么 WM_SHOWWINDOW 非常有效,但是当窗口处于 AutoHideMode 时,WM_SHOWWINDOW 是不可预测的,我看不到表明滑出已完成的事件。
有什么建议吗?
【问题讨论】:
【参考方案1】:我选择的解决方案是在IsAutoHideMode()
为FALSE
时覆盖虚拟方法CDockablePane::ShowPane
,在不是时覆盖CDockablePane::OnSlide
。
【讨论】:
【参考方案2】:尝试重写CDockablePane::CheckStopSlideCondition,将bSlideDirection和基类实现的返回值保存在某处
当 nIDEvent 为 AFX_AUTO_HIDE_SLIDE_OUT_EVENT 时,覆盖 CDockablePane::OnTimer 并检查基类实现后保存的值:
注意:AFX_AUTO_HIDE_SLIDE_OUT_EVENT 未记录在案,可能在未来版本的 MFC 中不可用
【讨论】:
感谢您抽出宝贵的时间,虽然我认为这不是正确的解决方案。我已经添加了答案。以上是关于MFC:是不是有事件检测 CDockablePane 派生窗口何时通过滑出或显示打开?的主要内容,如果未能解决你的问题,请参考以下文章