messagebox
用于显示一个模态对话框,包含了一个系统图标、一组按钮和一个简短的特定于应用程序消息、如状态或错误信息
消息框中将返回一个整数值,该值指示了用户点击哪个按钮
函数原型
_In_说明参数是可以输入的
_opt_说明参数是可选的
int WINAPI MessageBox(
_In_opt_ HWND hWnd,//hWnd该消息框的父窗口句柄 如果参数为NULL,则没有父窗口
_In_opt_ LPCTSTR lpText,//消息框的内容
_In_opt_ LPCTSTR lpCaption,//消息框的标题
_In_ UINT uType//指定一个决定对话框的内容和行为的位标志集,参数可通过指定下列标志和标志的组合,来显示消息框中的按钮&图标
);
uType参数定义:
MB_OK 默认值,有一个“确认”按钮在里面
MB_YESNO 有“是”和“否”两个按钮在里面
MB_ABORTRETRYIGNORE 有“中止”,“重试”和“跳过”三个按钮在里面
MB_YESNOCANCEL 有“是”,“否”和“取消”三个按钮在里面
MB_RETRYCANCEL 有“重试”和“取消”两个按钮在里面
MB_OKCANCEL 有“确定”和“取消”两个按钮在里面
更多参考
https://fishc.com.cn/forum.php?mod=viewthread&tid=46730&extra=page%3D1%26filter%3Dtypeid%26typeid%3D420
案例
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
MessageBox(NULL, TEXT("开始学习!"), TEXT("haha"), MB_OKCANCEL | MB_ICONQUESTION | MB_DEFBUTTON2);
return 0;
}
增设中止、重试、跳过功能
uType定义如下MB_ABORTRETRYIGNORE包含中止、重试、跳过功能
关于MB_OK | MB_ABORTRETRYIGNORE 中的|代表:进行宏定义
关于TEXT代表:解决编码问题,如果一些字符是单字节,其他又是双字节,就会导致不一致,可从TEXT的定义中发现
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
MessageBox(NULL, TEXT("开始学习!"), TEXT("haha"), MB_OK | MB_ABORTRETRYIGNORE);
return 0;
}
增设确认功能
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
int choice;//用choice来确认选择的值
while(true){ //循环一直运行
choice=MessageBox(NULL, TEXT("开始学习!"), TEXT("haha"), MB_YESNO);
if (choice == IDYES) { //如果选择的是yes
break;
}
}
return 0;
}