定数 | 値 | XPでの実行例 |
MB_OK | 0x00000000L | ![]() |
MB_OKCANCEL | 0x00000001L | ![]() |
MB_ABORTRETRYIGNORE | 0x00000002L | ![]() |
MB_YESNOCANCEL | 0x00000003L | ![]() |
MB_YESNO | 0x00000004L | ![]() |
MB_RETRYCANCEL | 0x00000005L | ![]() |
MB_CANCELTRYCONTINUE | 0x00000006L | ![]() |
MB_ICONHAND MB_ICONERROR MB_ICONSTOP |
0x00000010L | ![]() |
MB_ICONQUESTION | 0x00000020L | ![]() |
MB_ICONEXCLAMATION MB_ICONWARNING |
0x00000030L | ![]() |
MB_ICONASTERISK MB_ICONINFORMATION |
0x00000040L | ![]() |
//メッセージボックスのボタンとアイコンの種類 #include <windows.h> #include <tchar.h> #define MB_TEST(type) ::MessageBox(NULL, TEXT(#type), TEXT("MB_TEST"), type) int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int) { MB_TEST(MB_OK); MB_TEST(MB_OKCANCEL); MB_TEST(MB_ABORTRETRYIGNORE); MB_TEST(MB_YESNOCANCEL); MB_TEST(MB_YESNO); MB_TEST(MB_RETRYCANCEL); MB_TEST(MB_CANCELTRYCONTINUE); MB_TEST(MB_ICONHAND); MB_TEST(MB_ICONQUESTION); MB_TEST(MB_ICONEXCLAMATION); MB_TEST(MB_ICONASTERISK); MB_TEST(MB_ICONERROR); //MB_ICONHANDと同じ MB_TEST(MB_ICONSTOP); //MB_ICONHANDと同じ MB_TEST(MB_ICONWARNING); //MB_ICONEXCLAMATIONと同じ MB_TEST(MB_ICONINFORMATION); //MB_ICONASTERISKと同じ return 0; }マクロを定義して少し手抜きです
#define MB_TEST(type) ::MessageBox(NULL, TEXT(#type), TEXT("MB_TEST"), type)MB_TEST(type)のtypeに定数を入れるだけでそれぞれのMessageBoxを作成できます
MB_TEST(MB_OK);マクロを展開するとこうなります
::MessageBox(NULL, TEXT("MB_OK"), TEXT("MB_TEST"), MB_OK);