windowsプログラミング超初心者です。ウィンドウプロシージャ内でのcase文が長くなることの対策としてメッセージクラッカなるものを使えと教材に書いてあったのですが、普通にWindProc関数と同じ引数の関数を定義してcase文の中で使えばいいのではないかと思いました。
#include<windows.h> LRESULT CALLBACK WindProc(HWND, UINT, WPARAM, LPARAM); //CALLBACKやWINAPIはまだ特定の関数の前につける呪文だと思っています。 LRESULT WM_COMMANDfunc(HWND, UINT, WPARAM, LPARAM); //こんな感じで普通の関数の宣言のように int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ /* ********** */ } LRESULT CALLBACK WindProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){ /* ********** */ switch(uMsg){ case WM_COMMAND: return WM_COMMANDfunc(hWnd, uMsg, wParam, lParam); /* ************** */ default: return DefWindProc(hWnd, uMsg, wParam, lParam); } return 0; } LRESULT WM_COMMANDfunc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){ /* ************ */ return 0; }
この方法で、教材のサンプルコードは問題なく動くのですが、この方法ではいつかダメな時が来ますか?私が今聞きたいのは、メッセージクラッカはプログラムを見やすく書くためには絶対に必要なものなのか、それともこの普通に思いつく方法でもいいのかどうかなので、その教材のサンプルコードがどのようなものなのかは書く必要がないと判断しました。もしこのやり方でダメなのであれば、なぜダメなのかは説明されても分からないと思うのでそこまで詳しく説明してくださらなくても大丈夫です。詳細な理由は自分でメッセージクラッカを使い、もっと先へ進んでからでないと分からない気がします。回答は「使わなければいずれダメになる」か「この方法でずっと大丈夫」のどちらかで結構です。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/06 00:34