Visual Studio Community 2022でDialog作成

1.プロジェクト作成及びプロパティ設定

「新しいプロジェクトの作成」で、「Windowsデスクトップアプリケーション」を選択。
「プロフェクト」⇒「プロパティ」⇒「詳細」⇒「文字セット」をUnicodeからマルチバイトへ変更
wWinMain、MyRegisterClass、InitInstance、WndProc、About
の関数を持ったcppファイルが出来上がるが、このうちwWinMain以外を全て削除。
関数の外も#include文以外全て削除し、#include文の下に以下を追加
(作成するダイアログのCallback関数名をDlgWndProcとした)

BOOL CALLBACK DlgWndProc(HWND, UINT, WPARAM, LPARAM);

また、wWinMainの中は以下に書き換える。

UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);

DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC)DlgWndProc);

return 0;

2.ダイアログ作成

ソリューションエクスプローラーの中の「リソースファイル」を右クリック>[追加]>[リソース]を選び「リソースの追加」ダイアログで、「Dialog」を選択し「新規作成」

3.要素追加

ボタンを追加する場合、「ツールボックス」の中の「Button」を選択して、ダイアログエディタの中のダイアログの上でクリックする。

4.ダイアログプロシージャを書く

メインのcppファイルに戻って、ダイアログのプロシージャを書く。
追加したボタンを押したときの処理を書きたい場合はcase IDC_BUTTON1:のところに書く。
wWinMainの下に以下を追加

BOOL CALLBACK DlgWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) {
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDOK:
EndDialog(hWnd, IDOK);
return TRUE;
case IDCANCEL:
EndDialog(hWnd, IDCANCEL);
return TRUE;
case IDC_BUTTON1:
MessageBox(NULL, “test1”, “test2”, MB_OK);
break;
}
return FALSE;
}
return FALSE;

}

その他

プロジェクト作成時に一度そのままビルドした場合、ビルドでエラーが出る場合がある。その時ときはクリーンしてビルド。

コメント

タイトルとURLをコピーしました