Window がいつ入力フォーカスから外れるかを知る必要があるため、CWnd の OnKillFocus() メソッドをオーバーロードしました。
ただし、別のアプリケーション (alt+tab) にフォーカスしたり、ウィンドウを最小化したりしても、このメソッドは呼び出されません。しかし、最小化から復元すると、メソッドが呼び出されます。これらは、このメソッドをトリガーする意図された時間ですか?
Window がいつ入力フォーカスから外れるかを知る必要があるため、CWnd の OnKillFocus() メソッドをオーバーロードしました。
ただし、別のアプリケーション (alt+tab) にフォーカスしたり、ウィンドウを最小化したりしても、このメソッドは呼び出されません。しかし、最小化から復元すると、メソッドが呼び出されます。これらは、このメソッドをトリガーする意図された時間ですか?
アプリケーションがスイッチアウトされたときに確実に通知される必要がある場合は、CWnd :: OnActivateApp()ハンドラーが必要になると思います。
OnKillFocus()は通常、フォーカスを取得するという概念を持つコントロール(ボタン、編集ボックス、リストボックスなど)にのみ一貫して使用されます。通常、CWndはフォーカスを受け入れないため、それに依存することはできません。驚いています。あなたはそれをまったく手に入れます。
WM_ACTIVATEAPP
上記に加えてWM_ACTIVATE
、同じアプリケーション内でウィンドウを切り替えるときにトラップしたい場合もあります。