概要

メッセージボックスを使用するプログラムです。
簡単なメッセージやYes・No等の入力等もできます。
複数のプッシュボタンを使用しているときはどのボタンをディフォルトボタンとするか指定できます。
ディフォルトボタンとはメッセージボックスが表示されているときに選択状態となっているボタンです。

上図はWindows 7で実行した状態です。
以下、動作を説明する図はWindows 7で実行した状態を表しています。

テスト環境

コンパイラ

Visual C++ 2008 Standard 32/64bit
Visual C++ 2013 Express 32/64bit

実行環境

Windows 8.1 Enterprise 64bit
Windows 7 EnterPrise Service Pack 1 64bit
Windows Vista Ultimate Service Pack 2 32bit
Windows XP Professional Service Pack 3 32bit

プログラムソースの概要

_tWinMain関数

Windowsから最初に_tWinMain関数が呼び出されます。
MessageBox API関数を呼び出しメッセージボックスを表示します。
MessageBox API関数の戻り値をチェックします。

MessageBox API

MessgeBox APIのプロトタイプは以下の通りです。
int MessageBox(HWND hWnd,TCHAR* lpText,TCHAR* lpCaption,UINT uType);

hWnd

親ウィンドウのハンドルを指定します。親ウィンドウがない場合はNULLを指定します。

lpText

メッセージボックス内のタイトルを指定します。

lpCaption

メッセージボックスのタイトルを指定します。NULLを指定するとタイトルはエラーと表示されます。

uType

メッセージボックスの動作を指定します。複数の動作はor演算子(|)で合成します。
ボタンの表示の制御
ボタンフラグ
MB_ABORTRETRYIGNORE
MB_CANCELTRYCONTINUE
MB_OK | MB_HELP
MB_OK
MB_OKCANCEL
MB_RETRYCANCEL
MB_YESNO
MB_YESNOCANCEL
MB_OKは他のボタンを組み合わせて使用します。
アイコンの表示
アイコンフラグ
MB_ICONEXCLAMATION
MB_ICONINFORMATION
MB_ICONQUESTION
MB_ICONSTOP
ディフォルトボタン
左から何個目のボタンをディフォルトボタンとするかを指定できます。
ディフォルトボタン
1個目のボタン MB_DEFBUTTON1
2個目のボタン MB_DEFBUTTON2
3個目のボタン MB_DEFBUTTON3
4個目のボタン MB_DEFBUTTON4
戻り値
意味フラグ
[中止]ボタンが押された IDABORT
[キャンセル]ボタンが押された IDCANCEL
[続行]ボタンが押された IDCONTINUE
[無視]ボタンが押された IDIGNORE
[いいえ]ボタンが押された IDNO
[OK]ボタンが押された IDOK
[再試行]ボタンが押された IDRETRY
[再実行]ボタンが押された IDTRYAGAIN
[はい]ボタンが押された IDYES

プログラムソース

// メッセージボックスサンプル
// Visual C++ 2013 32/64bit

#include <windows.h>
#include <tchar.h>

int WINAPI _tWinMain(HINSTANCE hCurInst, HINSTANCE hPrevInst, TCHAR* lpsCmdLine, int nCmdShow){
	if (MessageBox(0, TEXT("Hello!"), TEXT("Message"), MB_YESNO) == IDYES)
		MessageBox(0, _TEXT("はいが押されました"), _TEXT("戻り値"), MB_OK);
	return 0;
}

ソースファイルと実行ファイルのダウンロード