カスタム実装のツールチップ システムを持つ CWnd オブジェクトから派生したコントロールがあります。ツールチップは CDialog を使用して実装され、正常に動作しますが、いつ非表示にする必要があるかを知るのに問題があります。
ツールチップは、マウスをコントロールの上に置くと表示され (WM_MOUSEHOVER)、マウスがコントロールから離れると非表示になります (WM_MOUSELEAVE)。ここまでは順調ですね。問題は、コントロールが設定されているダイアログがメニューから非表示になる可能性があることです (破棄されず、メニューから再度表示できます)。これが発生すると、WM_MOUSELEAVE イベントはコントロールに送信されず、ツールチップは削除されません...新しいダイアログの上に表示されます。
私の質問は: コントロールが隠されていることを知る方法はありますか? コントロールが設定されているダイアログの WM_SHOWWINDOW メッセージをキャプチャできることはわかっていますが、コードを追加しなくても他の場所でコントロールを使用できるように、コントロール自体から実行したいと考えています。
前もって感謝します!
ハビエル