C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: サブクラス化


(過去ログ 111 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■65642 / inTopicNo.1)  サブクラス化
  
□投稿者/ hanakana (9回)-(2013/03/13(Wed) 10:08:44)

分類:[C/C++] 

 いつもお世話になっています。
XP + VS2005 (SDK) で、単純なサブクラス化の話です。

g_pM->pGI[i].hBtn = CreateWindow("BUTTON", NULL, ...

でボタンを作成します。(!= NULL です)
x86 では下記のようにしており、これは問題ありません。

g_pM->pGI->pProc = (WNDPROC)GetWindowLong(g_pM->pGI[i].hBtn, GWL_WNDPROC);

今回、x64 に対応させるため、下記のように変更したところ、

g_pM->pGI->pProc = (WNDPROC)GetWindowLongPtr(g_pM->pGI[i].hBtn, GCLP_WNDPROC);

インデックスが無効です、のエラーが出ました。
WinUser.h を見ると

#define GWL_WNDPROC (-4)
#ifdef _WIN64
#undef GWL_WNDPROC
...

#define GCLP_WNDPROC (-24)

と定義されています。

VS2005 のバグ?でしょうか?
ワケワカ状態 (--; ですので、よろしくお願いします。

引用返信 編集キー/
■65643 / inTopicNo.2)  Re[1]: サブクラス化
□投稿者/ Hongliang (42回)-(2013/03/13(Wed) 10:19:57)
http://msdn.microsoft.com/ja-jp/library/cc364762.aspx
G"C"LP_WNDPROCはウィンドウクラス関数用の定数です。
引用返信 編集キー/
■65644 / inTopicNo.3)  Re[1]: サブクラス化
□投稿者/ 774RR (60回)-(2013/03/13(Wed) 10:21:02)
http://msdn.microsoft.com/ja-jp/library/aa384242(v=vs.85).aspx
によると
GWL_WNDPROC を GWLP_WNDPROC に置き換えろ と書いてあるわけだが
GWL_WNDPROC を GCLP_WNDPROC に置き換えろ とは書いていない。

GCL_WNDPROC は GCLP_WNDPROC に置き換えろ

引用返信 編集キー/
■65652 / inTopicNo.4)  Re[2]: サブクラス化
□投稿者/ hanakana (10回)-(2013/03/13(Wed) 12:14:44)
No65644 (774RR さん) に返信

 Hongliang さん
 774RR さん

ありがとうございました。
解決しました。
それにしても恥ずかしい…


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -