| 定数 | 値 | 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);