//一般形式
int WINAPI MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType);
//其实它是根据Unicode定义的
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 //如果启用Unicode库,就用MessageBoxW
#else
#define MessageBox MessageBoxA //否则,就用MessageBoxA
#endif
TEXT(/*sometext*/)
TEXT(/*sometext*/)
按钮参数 | 含义 |
---|---|
MB_OK | 默认值。有一个确认按钮在里面。 |
MB_YESNO | 有是和否在里面。 |
MB_ABORTRETRYIGNORE | 有Abort(放弃),Retry(重试)和Ignore(跳过) |
MB_YESNOCANCEL | 消息框含有三个按钮:Yes,No和Cancel |
MB_RETRYCANCEL | 有Retry(重试)和Cancel(取消) |
MB_OKCANCEL | 消息框含有两个按钮:OK和Cancel |
//按钮
#define MB_OK 0x00000000L
#define MB_OKCANCEL 0x00000001L
#define MB_ABORTRETRYIGNORE 0x00000002L
#define MB_YESNOCANCEL 0x00000003L
#define MB_YESNO 0x00000004L
#define MB_RETRYCANCEL 0x00000005L
参数 | 含义 |
---|---|
MB_ICONEXCLAMATION | 一个惊叹号出现在消息框 |
MB_ICONWARNING | 一个惊叹号出现在消息框 |
MB_ICONINFORMATION | 一个圆圈中小写字母i组成的图标出现在消息框 |
MB_ICONASTERISK | 一个圆圈中小写字母i组成的图标出现在消息框 |
MB_ICONQUESTION | 一个问题标记图标出现在消息框 |
MB_ICONSTOP | 一个停止消息图标出现在消息框 |
MB_ICONERROR | 一个停止消息图标出现在消息框 |
MB_ICONHAND | 一个停止消息图标出现在消息框 |
//图标
#define MB_ICONHAND 0x00000010L
#define MB_ICONQUESTION 0x00000020L
#define MB_ICONEXCLAMATION 0x00000030L
#define MB_ICONASTERISK 0x00000040L
#define MB_USERICON 0x00000080L
参数 | 含义 |
---|---|
MB_APPLMODAL | 在hwnd参数标识的窗口中继续工作以前,用户一定响应消息框。 |
MB_SYSTEMMODAL | 用系统模态消息框来改变各种各样的用户。 |
MB_TASKMODAL | 当调用应用程序或库没有一个可以得到的窗口句柄时,使用此标志。 |
//对话框模型定义
#define MB_APPLMODAL 0x00000000L
#define MB_SYSTEMMODAL 0x00001000L
#define MB_TASKMODAL 0x00002000L
#define MB_HELP 0x00004000L//是否拥有帮助按钮
标志 | 含义 |
---|---|
MB_DEFAULT_DESKTOP_ONLY | 接收输入的当前桌面一定是一个缺省桌面。 |
MB_HELP | 把一个Help按钮增加到消息框。 |
MB_RIGHT | 文本为右调整 |
MB_RTLREADING | 用在Hebrew和Arabic系统中从右到左的顺序显示消息和大写文本。 |
MB_SETFOREGROUND | 消息框变为前景窗口。在内部系统为消息个调用SetForegroundWindow函数。 |
MB_TOPMOST | 消息框用WS_EX_TOPMOST窗口类型来创建MB_SERVICE_NOTIFICATION。 |
//按钮
#define MB_OK 0x00000000L
#define MB_OKCANCEL 0x00000001L
#define MB_ABORTRETRYIGNORE 0x00000002L
#define MB_YESNOCANCEL 0x00000003L
#define MB_YESNO 0x00000004L
#define MB_RETRYCANCEL 0x00000005L
//图标
#define MB_ICONHAND 0x00000010L
#define MB_ICONQUESTION 0x00000020L
#define MB_ICONEXCLAMATION 0x00000030L
#define MB_ICONASTERISK 0x00000040L
#define MB_USERICON 0x00000080L
//图标声明
#define MB_ICONWARNINGMB_ICONEXCLAMATION
#define MB_ICONERRORMB_ICONHAND
#define MB_ICONINFORMATIONMB_ICONASTERISK
#define MB_ICONSTOPMB_ICONHAND
//默认按钮声明
#define MB_DEFBUTTON1 0x00000000L
#define MB_DEFBUTTON2 0x00000100L
#define MB_DEFBUTTON3 0x00000200L
#if(WINVER>=0x0400)
#define MB_DEFBUTTON4 0x00000300L //如果支持第四个MessageBox按钮的话,定义DEFButton4
#endif
//对话框模型定义
#define MB_APPLMODAL 0x00000000L
#define MB_SYSTEMMODAL 0x00001000L
#define MB_TASKMODAL 0x00002000L
#define MB_HELP 0x00004000L //是否拥有帮助按钮
//特殊声明
#define MB_NOFOCUS 0x00008000L
#define MB_SETFOREGROUND 0x00010000L
#define MB_DEFAULT_DESKTOP_ONLY 0x00020000L
#define MB_TOPMOST 0x00040000L
#define MB_RIGHT 0x00080000L
#define MB_RTLREADING 0x00100000L
ID | 选择了… |
---|---|
IDOK (1) | OK |
IDCANCEL (2) | CANCEL |
IDABORT (3) | ABORT |
IDRETRY (4) | RETRY |
IDIGNORE (5) | IGNORE |
IDYES (6) | YES |
IDNO (7) | NO |
#include <windows.h>
//切记!当调用<windows.h>时,不要调用MFC!(Afx.h)
int main()
{
int result = MessageBox( NULL , TEXT("这是对话框") , TEXT("你好") , MB_ICONINFORMATION|MB_YESNO);
switch(result)/*注意!使用Unicode应用TEXT包围字串*/
{
case IDYES:MessageBox(NULL,TEXT("您选择了YES"),TEXT("YES"),MB_OK);break;
case IDNO:MessageBox(NULL,TEXT("您选择了NO"),TEXT("NO"),MB_OK);break;
}
return 0;
}
1.第一步:弹出对话框。语句:
int result = MessageBox(NULL,TEXT("这是对话框"),TEXT("你好"),MB_ICONINFORMATION|MB_YESNO);
2.选择是:语句:
case IDYES:MessageBox(NULL,TEXT("您选择了YES"),TEXT("YES"),MB_OK);break;
3.选择否:语句:
case IDNO:MessageBox(NULL,TEXT("您选择了NO"),TEXT("NO"),MB_OK);break;