一、示例
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
int nSelect = MessageBox(NULL, TEXT("你好!"), TEXT("Welcome"), MB_OKCANCEL);
if(nSelect == IDOK){
MessageBox(NULL, TEXT("你点击了“确定”按钮"), TEXT("提示"), MB_OK);
}else{
MessageBox(NULL, TEXT("你点击了“取消”按钮"), TEXT("提示"), MB_OK);
}
return 0;
}
二、程序解析
2.1 WinMain函数参数
参数 | 描述 |
---|---|
HINSTANCE hInstance | 当前窗口句柄 |
HINSTANCE hPrevInstance | 前一个窗口句柄,Win32下为NULL(Win16留下的废物,目前已弃用) |
LPSTR lpCmdLine | 命令行参数 |
int nCmdShow | 窗口显示方式 |
2.2 MessageBox()函数
2.2.1 参数
int WINAPI MessageBox( HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType );
函数 | 描述 |
---|---|
int WINAPI MessageBox( HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType ) | 用于弹出一个指定风格的对话框 参数说明: hWnd:该消息框的父窗口句柄,如果此参数为NULL,则该消息框没有拥有父窗口; lpText:消息框的内容。LPCTSTR 是自定义数据类型,等价于 const char *; lpCaption:消息框的标题; uType:对话框的按钮样式和图标,可以有如下值: MB_OK:默认值,有一个“确认”按钮在里面 MB_YESNO:有“是”和“否”两个按钮在里面 MB_ABORTRETRYIGNORE:有“中止”,“重试”和“跳过”三个按钮在里面 MB_YESNOCANCEL:有“是”,“否”和“取消”三个按钮在里面 MB_RETRYCANCEL:有“重试”和“取消”两个按钮在里面 MB_OKCANCEL:有“确定”和“取消”两个按钮在里面 |
uType还可以有如下值:
可能的值 | 描述 |
---|---|
MB_ICONEXCLAMATION | 一个惊叹号出现在消息框: |
MB_ICONWARNING | 一个惊叹号出现在消息框(同上) |
MB_ICONINFORMATION | 一个圆圈中小写字母i组成的图标出现在消息框: |
MB_ICONASTERISK | 一个圆圈中小写字母i组成的图标出现在消息框(同上) |
MB_ICONQUESTION | 一个问题标记图标出现在消息框: |
MB_ICONSTOP | 一个停止消息图标出现在消息框: |
MB_ICONERROR | 一个停止消息图标出现在消息框(同上) |
MB_ICONHAND | 一个停止消息图标出现在消息框(同上) |
2.2.2 返回值
返回值 | 含义 |
---|---|
IDOK | 用户按下了“确认”按钮 |
IDCANCEL | 用户按下了“取消”按钮 |
IDABORT | 用户按下了“中止”按钮 |
IDRETRY | 用户按下了“重试”按钮 |
IDIGNORE | 用户按下了“忽略”按钮 |
IDYES | 用户按下了“是”按钮 |
IDNO | 用户按下了“否”按钮 |