• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C++のclassを、ウインドウプロシージャに渡し)

C++のclassをウインドウプロシージャで制御する方法

このQ&Aのポイント
  • C++のclassをウインドウプロシージャに渡して、制御する方法を知りたいです。
  • SetWindowLongPtrやGetWindowLongPtrを使用してclassをウインドウプロシージャで扱う方法がうまくいきません。
  • classを用いてウインドウプロシージャで制御するための方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

型が違う点については回答1でいいとして、 > SetWindowLong(hWnd,DWL_USER,(LONG)&Common_Class); > Common_Class=GetClassLongPtr(hWnd,GCL_CBCLSEXTRA); SetWindowLongで「(ダイアログ)ウインドウ」のユーザー領域に値を設定してるんですよね。 なぜ、GetClassLongPtrで、しかもGCL_CBCLSEXTRA(クラスに関連付けられた拡張クラスメモリのサイズをバイト単位で取得します)を指定して値を取得しようとしてるんですか?

その他の回答 (1)

回答No.1

> SetWindowLongPtr(hWnd,DWLP_USER,(LONG_PTR)&Common_Class); setはポインタでセットしていて > Common_Class=GetClassLongPtr(hWnd,GCL_CBCLSEXTRA); getは実体をとってこようとしている。 そこに矛盾があるのに気づいていますか? クラスデータを利用する場合は CommonClass* pCommonClass = (CommonClass*)GetClassLongPtr(hWnd,GCL_CBCLSEXTRA); として、クラスメンバは pCommonClass->xxx としてアクセスすれはいいはずです。

関連するQ&A