1

WINAPI では、どちらが正しい/必要ですか?

SetWindowLongPtr(HelpBox, GWLP_USERDATA, static_cast<LONG_PTR>(SetWindowLongPtr(HelpBox, GWLP_WNDPROC, (LONG_PTR)(Subclass))));

また

SetWindowLongPtr(HelpBox, GWLP_WNDPROC, (LONG_PTR)(Subclass));

それから WM_DESTROY で私は両方が好きです:

SetWindowLong(HelpBox, GWLP_WNDPROC, (LONG) Original);

2 番目よりも 1 番目のものを使用する必要があるのはなぜですか? GWLP_USERDATA と setwindowlongptr が 2 回あることに気付きました.なぜですか? MSDN で両方の例を見ましたが、最初の例を 2 番目の例よりいつ使用するべきかわかりません。

何か案は?

4

1 に答える 1

3

SetWindowSubclass代わりに使用します。データをウィンドウに関連付ける負担を処理します。とりあえず。最初のものは、ウィンドウに関連付けられたユーザー データ ストレージに古いウィンドウ proc アドレスを格納します。ウィンドウ クラスが自分で定義したものでない限り、これを行うことはできません。すなわちそのようなストレージがウィンドウに存在する場所そのストレージが他の目的に使用されないことが保証されます。

于 2013-03-08T23:42:56.947 に答える