MessageBoxのボタンとアイコン種類

MessageBox関数の第4引数でボタンとアイコンの種類を変更できます

定数 XPでの実行例
MB_OK 0x00000000L MB_OK
MB_OKCANCEL 0x00000001L MB_OKCANCEL
MB_ABORTRETRYIGNORE 0x00000002L MB_ABORTRETRYIGNORE
MB_YESNOCANCEL 0x00000003L MB_YESNOCANCEL
MB_YESNO 0x00000004L MB_YESNO
MB_RETRYCANCEL 0x00000005L MB_RETRYCANCEL
MB_CANCELTRYCONTINUE 0x00000006L MB_CANCELTRYCONTINUE
MB_ICONHAND
MB_ICONERROR
MB_ICONSTOP
0x00000010L MB_ICONHAND
MB_ICONQUESTION 0x00000020L MB_ICONQUESTION
MB_ICONEXCLAMATION
MB_ICONWARNING
0x00000030L MB_ICONEXCLAMATION
MB_ICONASTERISK
MB_ICONINFORMATION
0x00000040L MB_ICONASTERISK

今回テストしたコードはこんなかんじです

//メッセージボックスのボタンとアイコンの種類
#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);

TOPプログラミング>MessageBoxのボタンとアイコンの種類