読者です 読者をやめる 読者になる 読者になる

CDialog

WindowsAPI Test

ダイアログクラスCDialogを実装する・・・。

まず、resource.hに、

ダイアログのリソースID、IDD_DIALOGの番号を割り振る・・・。
CDialog.rcのダイアログリソース定義は、

こんな感じ・・・。
Dialog.hで、CDialogは

と定義・・・。
リソースID、アプリケーションインスタンスハンドル、ウィンドウハンドルが要る・・・。
それを受け取るためのコンストラクタが、

でメンバ外だが、

DialogProcを用意・・・。

Dialog.cppで、引数付きコンストラクタは、

DialogProcでは、

WM_LBUTTONDOWN(ダイアログ上でマウス左ボタン)なら、EndDialogにIDOKを指定し、WM_CLOSE(閉じるボタンをクリック)なら、EndDialogにIDCANCELを指定・・・。

このダイアログの生成は、CMenu::OnItem1_1で、

実は、CDialogのローカルオブジェクトdlgのコンストラクタにリソースIDや、アプリケーションインスタンスハンドル、ウィンドウハンドルを指定しているのに、実際はDialogBoxで表示するようにしていたりする・・・。
DoModalは次回実装する・・・。

f:id:BG1:20150624124044p:plain

Item1-1をクリックすると、

f:id:BG1:20150624124935p:plain

ダイアログが表示される・・・。

Test/WinMain.cpp at master · bg1bgst333/Test · GitHub
Test/Application.h at master · bg1bgst333/Test · GitHub
Test/Application.cpp at master · bg1bgst333/Test · GitHub
Test/Window.h at master · bg1bgst333/Test · GitHub
Test/Window.cpp at master · bg1bgst333/Test · GitHub
Test/Menu.h at master · bg1bgst333/Test · GitHub
Test/Menu.cpp at master · bg1bgst333/Test · GitHub
Test/Dialog.h at master · bg1bgst333/Test · GitHub
Test/Dialog.cpp at master · bg1bgst333/Test · GitHub
Test/resource.h at master · bg1bgst333/Test · GitHub
Test/CDialog.rc at master · bg1bgst333/Test · GitHub