///////////////Messagebox的定义
WINUSERAPI
int
WINAPI
MessageBoxA(
HWND hWnd ,
LPCSTR lpText,
LPCSTR lpCaption,
UINT uType);
WINUSERAPI
int
WINAPI
MessageBoxW(
HWND hWnd ,
LPCWSTR lpText,
LPCWSTR lpCaption,
UINT uType);
#ifdef UNICODE
#define MessageBox MessageBoxW
#else
#define MessageBox MessageBoxA
#endif // !UNICODE
WINUSERAPI
int
WINAPI
MessageBoxExA(
HWND hWnd ,
LPCSTR lpText,
LPCSTR lpCaption,
UINT uType,
WORD wLanguageId);
WINUSERAPI
int
WINAPI
MessageBoxExW(
HWND hWnd ,
LPCWSTR lpText,
LPCWSTR lpCaption,
UINT uType,
WORD wLanguageId);
#ifdef UNICODE
#define MessageBoxEx MessageBoxExW
#else
#define MessageBoxEx MessageBoxExA
#endif // !UNICODE
/////////////////////////////////////下面是最后一个参数的所有可选参数,即显示方式
/*
* MessageBox() Flags
*/
#define MB_OK 0x00000000L //确定
#define MB_OKCANCEL 0x00000001L //确定 取消
#define MB_ABORTRETRYIGNORE 0x00000002L 终止(A) 重试(R) 忽略(I)
#define MB_YESNOCANCEL 0x00000003L 是(Y) 否(N) 取消
#define MB_YESNO 0x00000004L 是 否
#define MB_RETRYCANCEL 0x00000005L 重试(R) 取消
///////以不为图标,还附带了声音
#define MB_ICONHAND 0x00000010L 一个叉叉 //错误时的提示
#define MB_ICONQUESTION 0x00000020L 一个问号
#define MB_ICONEXCLAMATION 0x00000030L 一个感叹号,一般修改一个文件后没保存,在关闭时出现的提示中的那个三角形外壳的感叹号
#define MB_ICONASTERISK 0x00000040L 一个大写的i,即I
#if(WINVER >= 0x0400)
#define MB_USERICON 0x00000080L
#define MB_ICONWARNING MB_ICONEXCLAMATION //就是那个感叹号。。。用于警告,更形象
#define MB_ICONERROR MB_ICONHAND //就是那个叉叉的。。用于错误的提示,更形象化了。。。
#endif /* WINVER >= 0x0400 */
#define MB_ICONINFORMATION MB_ICONASTERISK //是上面的大写I,用于信息的提示,更形象化了。。。
#define MB_ICONSTOP MB_ICONHAND //就是那个叉叉的。。用于禁止的提示,更形象化了。。。
//以下是默认按钮的设置(好像叫缺省按钮)
#define MB_DEFBUTTON1 0x00000000L //设置第一个为默认按钮
#define MB_DEFBUTTON2 0x00000100L //设置第二个
#define MB_DEFBUTTON3 0x00000200L //设置第三个
#if(WINVER >= 0x0400)
#define MB_DEFBUTTON4 0x00000300L //设置第四个
#endif /* WINVER >= 0x0400 */
#define MB_APPLMODAL 0x00000000L
#define MB_SYSTEMMODAL 0x00001000L
#define MB_TASKMODAL 0x00002000L
#if(WINVER >= 0x0400)
#define MB_HELP 0x00004000L // Help Button 帮助按钮,选择Help按钮或按F1产生一个Help事件
#endif /* WINVER >= 0x0400 */
#define MB_NOFOCUS 0x00008000L
#define MB_SETFOREGROUND 0x00010000L
#define MB_DEFAULT_DESKTOP_ONLY 0x00020000L
#if(WINVER >= 0x0400)
#define MB_TOPMOST 0x00040000L
#define MB_RIGHT 0x00080000L //文本为右调整
#define MB_RTLREADING 0x00100000L //用在Hebrew和Arabic系统中从右到左的顺序显示消息和大写文本。
#endif /* WINVER >= 0x0400 */
#ifdef _WIN32_WINNT
#if (_WIN32_WINNT >= 0x0400)
#define MB_SERVICE_NOTIFICATION 0x00200000L
#else
#define MB_SERVICE_NOTIFICATION 0x00040000L
#endif
#define MB_SERVICE_NOTIFICATION_NT3X 0x00040000L
#endif
#define MB_TYPEMASK 0x0000000FL
#define MB_ICONMASK 0x000000F0L
#define MB_DEFMASK 0x00000F00L
#define MB_MODEMASK 0x00003000L
#define MB_MISCMASK 0x0000C000L
////一下是它的返回值的参数
/*
* Dialog Box Command IDs
*/
//以下是MessageBox返回的值,如果没有足够的内存来创建消息框,则返回值为零;如果函数调用成功,则返回值为下列中的一个,分别表示按了哪个按钮
#define IDOK 1 //确定
#define IDCANCEL 2 //取消
#define IDABORT 3 //终止
#define IDRETRY 4 //重试
#define IDIGNORE 5 //忽略
#define IDYES 6 //是
#define IDNO 7 //否
#if(WINVER >= 0x0400)
#define IDCLOSE 8 //关闭
#define IDHELP 9 //帮助
#endif /* WINVER >= 0x0400 */
注:如果一个消息框有一个Cancel按钮,且如果Esc键被按下或Cancel键被选择,则函数返回IDCANCEL值。如果没有Cancel按钮,则按Ese键没有作用。