ウィンドウの作成と管理のために私自身の定型コード/ライブラリを作成しようとしています。私が達成しようとしているのは、プログラマがlambdaパラメータを持つ関数を呼び出してウィンドウを閉じて実行できることです。私が作成しようとしています構造のようなものである(JavaScriptのjQueryのイベントハンドラを追加するために、プログラマを可能にする方法と同様。):win32イベントフックからのC++コールバック
- 私は特定のウィンドウについての情報を保持している私のカスタム
Window
クラスのオブジェクトwindow
を持っています。 - このオブジェクトは、ウィンドウのイベントフックを
SetWinEventHook(...)
に設定します。 - プログラマは
window.close(lambda)
を呼び出し、ラムダ関数をウィンドウのクローズイベントハンドラリスト/vector
に追加します。 - closeイベントが発生すると、このフックはウィンドウのcloseイベントリストからコールバックを呼び出します。
私は今、インターウェブ上でしばらく探していますが、私は最後のステップを実行する方法を見つけることができませんでした。私はイベントにフックを追加できますが、このフックは静的でなければならない、またはキャプチャなしのラムダでなければならないので、ウィンドウオブジェクトと通信する方法はありませんか?私はこれが愚かなアイデアだと思いますが、これをまともな方法で実装する方法はありますか?
SetWinEventHook()を1回だけ呼び出します。コールバックはウィンドウハンドルを提供します。したがって、静的な 'map'が必要で、Windowオブジェクトを見つけることができます。 –
私はそれについて完全にはっきりしていないかもしれませんが、実際にはSetWinEventHookを1回呼びます。マップについては、それは本当に素晴らしいアイデアです!あなたはそれから完全な答えをしてくださいできますか?私はそれを「私の質問に答えました」とマークすることができます。 ;) –
「完了」にする方法がわかりません。自分の投稿に行ったことを表示して、それをあなたの質問を閉じるための答えとしてマークしてください。 –