このページの内容 |
---|
ウインドウプロシージャの違い |
一般的なウインドウ プロシージャ |
ダイアログプロシージャ |
MDI フレームウインドウ |
MDI 子ウインドウ |
ありがたいスポンサー様 |
---|
Win32 SDK アプリケーションを書くにあたって、ウインドウプロシージャの実装は必要不可欠です。しかし、ウインドウプロシージャの実装方法はどのようなウインドウであるかによって違ってきます。わかりやすいところで行くと、ダイアログ プロシージャと一般的なウインドウプロシージャでは、戻り値の値を変えなければなりません。
ここでは、そのような違いをまとめてみたいと思います。
LRESULT CALLBACK WindowProc(HWND hWnd,UINT uiMsg,WPARAM wParam,LPARAM lParam);
BOOL CALLBACK DialogProc(HWND hDlg,UINT uiMsg,WPARAM wParam,LPARAM lParam);
MDI の子ウインドウを格納するウインドウのことをフレームウインドウと呼ぶ。一般的なウインドウプロシージャと同じように実装すればよいが、デフォルトの処理プロシージャを変更しなくてはならない。
LRESULT CALLBACK WindowProc(HWND hWnd,UINT uiMsg,WPARAM wParam,LPARAM lParam);
以下のメッセージを正しく処理してくれる。これによって、特に複雑な実装をすることなく、フレームウインドウを作ることができる。しかし、WM_COMMAND, WM_SIZE などは特別な実装を行いたい場合は、必要な処理を記述したあとに DefFrameProc の戻り値を返せばよいだろう。
LRESULT CALLBACK WindowProc(HWND hWnd,UINT uiMsg,WPARAM wParam,LPARAM lParam);
以下のメッセージを正しく処理してくれる。これによって、特に複雑な実装をすることなく、MDI子ウインドウを作ることができる。