WM_SIZEのようなウィンドウのイベントを処理するための関数コールバックがあります。では、開いているウィンドウに関数コールバックを渡す方法は?(コマンドラインアプリケーション用です)。
RegisterClassExを見たことがありますが、新しいウィンドウの作成に使用されていると思います。
既存のウィンドウのウィンドウメッセージを処理する場合は、いくつかのオプションがあります。
サブクラス化。各ウィンドウには「windowproc」コールバック関数(参照している)があり、を使用SetWindowLongPtr
して置き換えることができますGWLP_WNDPROC
。次に、独自のウィンドウプロシージャで、置き換えた元のメッセージにメッセージを転送する必要があります。ただし、いくつかの制限があります。
Windowsフック、を使用しSetWindowsHookEx
ます。他のウィンドウのメッセージを確認する場合は、これを使用します。特定のスレッドまたはシステム全体のウィンドウのすべてのメッセージを表示できます。さまざまな種類のメッセージをキャッチできるさまざまな種類のフックがあります。これはかなり重いアプローチです。最後の手段であるため、システムを不必要に停止させることはありません。