0

重複の可能性:
WndProc で使用するためにこのポインターを格納するための最良の方法

Win32 コントロールを処理するジェネリック クラスを作成しようとしていますが、問題は、WndProc メッセージ ハンドラー関数が静的であるため、それらを静的にしてインスタンス化しない限り、関数から hWnd などの重要なローカル クラス メンバーにアクセスできないことです。グローバル名前空間。

今、私はそれを試しましたが、コントロールクラスの別のインスタンスを作成した瞬間、以前に作成されたインスタンスの静的メンバー値が新しいインスタンスによって上書きされたことをすぐに発見しました。このクラスを実装する方法について誰か考えがありますか? どういうわけか静的メンバーの複数のインスタンスを持つことは可能ですか?

ありがとう、

4

1 に答える 1

3

静的 WndProc に渡された特定のオブジェクト インスタンスを呼び出すプロキシ関数として、静的 WndProc を使用します。通常、GetWindowLongPtr API と SetWindowLongPtr API を使用して、ウィンドウを作成したインスタンスへのポインターを格納します。

于 2012-06-05T17:51:13.690 に答える