论安全萌新的自我修养

   :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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;
}
posted on 2021-02-08 23:06  Yangsir34  阅读(769)  评论(0编辑  收藏  举报