メッセージクラッカーで使用する関数の引数について – プログラミング – Home

メッセージクラッカーで使用する関数の引...
 
通知
すべてクリア

[解決済] メッセージクラッカーで使用する関数の引数について


suzugoya
 suzugoya
(@suzugoya)
ゲスト
結合: 23年前
投稿: 47
Topic starter  

メッセージクラッカーで使用する関数の引数について
   HANDLE_MSG(hwnd,WM_CREATE,OnCreate);
   HANDLE_MSG(hwnd,WM_COMMAND,OnCommand);
・・・
で使用する
OnCreate()
OnCommand()
のどの関数の引数の種類、順序が分かりません
よろしくお願いします

 環境 Windows98
VC6.0
API  で作成しています


引用未解決
トピックタグ
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

windowsx.h の例えば、HANDLE_WM_CREATEの部分を見ると、

/* BOOL Cls_OnCreate(HWND hwnd, LPCREATESTRUCT lpCreateStruct) */
#define HANDLE_WM_CREATE(hwnd, wParam, lParam, fn) \

というように、コメントに関数プロトタイプが書いてあります。


返信引用
n
 n
(@n)
ゲスト
結合: 23年前
投稿: 159
 

HANDLE_MSG( ウィンドウハンドル, ウィンドウメッセージ番号, 自分で定義した関数の
名前 );

#「Advanced Windows」ですか?


返信引用
n
 n
(@n)
ゲスト
結合: 23年前
投稿: 159
 

間違えました。マクロの説明じゃなくハンドラの説明でした。
dairygoodsさんのコメントが正しいです。


返信引用
suzugoya
 suzugoya
(@suzugoya)
ゲスト
結合: 23年前
投稿: 47
Topic starter  

ご指摘ありがとうございます

Windowsx.hを見てみましたが

1. #define HANDLE_WM_CREATE(hwnd, wParam, lParam, fn) \
((fn)((hwnd), (LPCREATESTRUCT)(lParam)) ? 0L : (LRESULT)-1L)

2. #define HANDLE_WM_COMMAND(hwnd, wParam, lParam, fn) \
((fn)((hwnd), (int)(LOWORD(wParam)), (HWND)(lParam), (UINT)HIWORD(wParam)),
0L)

1. OnCreate(HWND,LPCREATESTRUCT)
  ・\ の意味
  ・?後のFALSE TRUE の意味
 が分かりません 
2. OnCommand(HWND,Control ID,lParam,Notification code)
  ということでしょうか?


返信引用
n
 n
(@n)
ゲスト
結合: 23年前
投稿: 159
 

「\」は、マクロ定義がここで終わりじゃなくて次の行にも続きます、という意味です。
「?」は、実は「a ? b : c」という形式で、aが真ならばbを、aが偽ならばcを実行(ま
たは解釈)するという「三項演算子」の一部です。


返信引用
suzugoya
 suzugoya
(@suzugoya)
ゲスト
結合: 23年前
投稿: 47
Topic starter  

WM_CREATE return 0 or -1 --->BOOL OnCreate()
WM_COMMAND return 0 --->void OnCommand()

ということで、メッセージ WM_...のreturn値から、
 クラッカー On..でもreturn値のあるなしが決まるということでしょうか

ほぼ、納得しました
ご指摘いただいた方、ありがとうございました


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました