ウィンドウが実際に表示されるまで、CDockablePane 派生ウィンドウの初期化を遅らせたい。ウィンドウが単純にドッキングされている場合、WM_SHOWWINDOW は非常に効果的ですが、ウィンドウが AutoHideMode の場合、WM_SHOWWINDOW は予測できず、スライド アウトが終了したことを示すイベントが表示されません。
何かアドバイス?
ウィンドウが実際に表示されるまで、CDockablePane 派生ウィンドウの初期化を遅らせたい。ウィンドウが単純にドッキングされている場合、WM_SHOWWINDOW は非常に効果的ですが、ウィンドウが AutoHideMode の場合、WM_SHOWWINDOW は予測できず、スライド アウトが終了したことを示すイベントが表示されません。
何かアドバイス?
私が選んだ解決策は、そうである場合とそうでない場合の仮想メソッドCDockablePane::ShowPane
をオーバーライドすることです。IsAutoHideMode()
FALSE
CDockablePane::OnSlide
CDockablePane::CheckStopSlideCondition をオーバーライドして、bSlideDirection と基本クラスの実装の戻り値をどこかに保存してみてください
CDockablePane::OnTimer をオーバーライドし、nIDEvent が AFX_AUTO_HIDE_SLIDE_OUT_EVENT の場合、基本クラスの実装後に保存された値を確認します。
注: AFX_AUTO_HIDE_SLIDE_OUT_EVENT は文書化されておらず、MFC の将来のバージョンでは使用できない可能性があります