リソースファイル、その2。

メッセージの流れを勉強するはずの項目なのにリソースファイルでこってり時間をとられてる自分。


ダイアログボックスプロシージャを使ってのメッセージの流れをつかむプログラムをやったんですが――、

そもそもダイアログボックスが表示されない。


サンプルを見た限りソースの中身は同じ(本見ながらだからなあ
でリソースだよ、やっぱり。

#define MENU 100

これだ、これが原因だった。


リソースの方でマクロ展開されてた所為でうまく動いていなかったらしいのだ。

上の一文を消すか、プログラムのDialogBox()の中身をキャストするかで解決した。

結論

-----------------------------------------------------
//main.cpp

DialogBox( hInstance, (LPCSTR)MENU,
                    HWND_DESKTOP,
                        (DLGPROC)dlgProc);
-----------------------------------------------------
-----------------------------------------------------
//Modal.rc

MENU DIALOGEX 0, 0, 185, 115
-----------------------------------------------------
-----------------------------------------------------
//resource.h

#define MENU			100
-----------------------------------------------------


修正前は、

-----------------------------------------------------
//main.cpp

DialogBox( hInstance, "MENU",
                    HWND_DESKTOP,
                        (DLGPROC)dlgProc);
-----------------------------------------------------

だった。

修正前の main.cpp のまま通したい場合は resource.h の一行を消せばすんなり実行される。
これに二、三時間かかりました。