MessageBox 是一个函数;用于显示一个模态对话框;其中包含一个系统图标、 一组按钮和一个简短的特定于应用程序消息;如状态或错误的信息。
消息框中返回一个整数值;该值指示用户单击了哪个按钮。
MessageBoxA(
_In_opt_ HWND hWnd,
_In_opt_ LPCSTR lpText,
_In_opt_ LPCSTR lpCaption,
_In_ UINT uType);
MessageBoxW(
_In_opt_ HWND hWnd,
_In_opt_ LPCWSTR lpText,
_In_opt_ LPCWSTR lpCaption,
_In_ UINT uType);
注释;In 说明该参数是输入的;opt 说明该参数是可选参数。
uType参数定义解析
以上的uType都可以用|;位或操作符;来组合多个参数
#define MB_OKCANCEL 0x00000001L
#define MB_ICONHAND 0x00000010L
#define MB_DEFBUTTON2 0x00000100L
#define MB_SYSTEMMODAL 0x00001000L
#define MB_DEFAULT_DESKTOP_ONLY 0x00020000L
查看定义;可以发现他们每个类型的位都是不一样的;如果想组合MB_OKCANCEL和MB_ICONHAND
MessageBox(NULL, TEXT(;I am a messagebox;), TEXT(;titile;), MB_OKCANCEL | MB_ICONHAND);
实际情况就是00000001与00000010进行位或操作;结果就是00000011
#include <Windows.h>
#pragma comment(lib, ;User32.lib;)
int WINAPI WinMain(HINSTANCE hIsntance, HINSTANCE hPrevIsntance, PSTR szCmdLine, int iCmdShow)
{
MessageBox(NULL, TEXT(;I am a messagebox;), TEXT(;titile;), MB_OK);
return 0;
}
修改上面代码;将对话框中的显示文本改为**“是否退出程序”**;对话框上的按钮改为“是”、“否”。之后程序中对MessageBox的返回值进行判断;**按下“是”**则显示新对话框;其上显示文本为“退出窗口”;按钮为“确定”;按下“否”则显示新对话框;其上显示文本为“不退出窗口”;按钮为“确定”。
#include <windows.h>
#pragma comment(lib, ;User32.lib;)
int WINAPI WinMain(HINSTANCE hIsntance, HINSTANCE hPrevIsntance, PSTR szCmdLine, int iCmdShow)
{
int ret = MessageBox(NULL, TEXT(;是否退出程序;), TEXT(;NueXini;), MB_YESNO);
if (ret == IDYES)
{
MessageBox(NULL, TEXT(;退出窗口;), TEXT(;NueXini;), MB_OK);
}
if (ret == IDNO)
{
MessageBox(NULL, TEXT(;不退出窗口;), TEXT(;NueXini;), MB_OK);
}
return 0;
}
关于MessageBox;回答以下几个问题;
函数主要做什么事情?函数的返回是怎么样的?函数的各个参数是什么意思?第四个参数如果为MB_OK、MB_OKCANCEL、MB_ICONSTOP;分别表示什么意思?以上问题都在本文涉及到了;还请耐心看完~
enjoy it~