10/01/06 01:14:54
>>189
ない。だから、少し間接的な方法をとる。
ウィンドウハンドルに好きな値を関連付ける機能があるので、オブジェクトへのポインタを登録しておくというもの。
こんな関数をグローバルまたはクラスの静的メンバ関数として定義し、
SetWindowLongPtr(hButton, GWLP_WNDPROC, (LONG_PTR)ButtonSubWndProcEntry)のように渡す。
(この問題とは直接関係ないが、SetWindowLongPtr使え)
あと、SetWindowLongPtr呼ぶ前に、SetProp(hButton, TEXT("MyClass object"), オブジェクトへのポインタ);する。
LRESULT CALLBACK ButtonSubWndProcEntry(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
{
MyClass* p = static_cast<MyClass*>(GetProp(hwnd, TEXT("MyClass object")));
return p->ButtonSubWndProc(hwnd, msg, wp, lp);
}