MessageBox意为消息盒子,包含在windows.h头文件中。
函数原型:
int MessageBox(
HWND hWnd,
LPCWSTR lpText,
LPCWSTR lpCaption,
UINT uType
)
hWnd变量指的是窗口句柄。
lpText变量指的是消息盒子里的内容。
lpCaption变量指的是消息盒子的标题。
uType指的是消息盒子的类型。
uType的类型:
#define MB_OK __MSABI_LONG(0x00000000)
#define MB_OKCANCEL __MSABI_LONG(0x00000001)
#define MB_ABORTRETRYIGNORE __MSABI_LONG(0x00000002)
#define MB_YESNOCANCEL __MSABI_LONG(0x00000003)
#define MB_YESNO __MSABI_LONG(0x00000004)
#define MB_RETRYCANCEL __MSABI_LONG(0x00000005)
#define MB_CANCELTRYCONTINUE __MSABI_LONG(0x00000006)
#define MB_ICONHAND __MSABI_LONG(0x00000010)
#define MB_ICONQUESTION __MSABI_LONG(0x00000020)
#define MB_ICONEXCLAMATION __MSABI_LONG(0x00000030)
#define MB_ICONASTERISK __MSABI_LONG(0x00000040)
#define MB_USERICON __MSABI_LONG(0x00000080)
#define MB_ICONWARNING MB_ICONEXCLAMATION
#define MB_ICONERROR MB_ICONHAND
#define MB_ICONINFORMATION MB_ICONASTERISK
#define MB_ICONSTOP MB_ICONHAND
#define MB_DEFBUTTON1 __MSABI_LONG(0x00000000)
#define MB_DEFBUTTON2 __MSABI_LONG(0x00000100)
#define MB_DEFBUTTON3 __MSABI_LONG(0x00000200)
#define MB_DEFBUTTON4 __MSABI_LONG(0x00000300)
#define MB_APPLMODAL __MSABI_LONG(0x00000000)
#define MB_SYSTEMMODAL __MSABI_LONG(0x00001000)
#define MB_TASKMODAL __MSABI_LONG(0x00002000)
#define MB_HELP __MSABI_LONG(0x00004000)
#define MB_NOFOCUS __MSABI_LONG(0x00008000)
#define MB_SETFOREGROUND __MSABI_LONG(0x00010000)
#define MB_DEFAULT_DESKTOP_ONLY __MSABI_LONG(0x00020000)
#define MB_TOPMOST __MSABI_LONG(0x00040000)
#define MB_RIGHT __MSABI_LONG(0x00080000)
#define MB_RTLREADING __MSABI_LONG(0x00100000)
#define MB_SERVICE_NOTIFICATION __MSABI_LONG(0x00200000)
#define MB_SERVICE_NOTIFICATION_NT3X __MSABI_LONG(0x00040000)
#define MB_TYPEMASK __MSABI_LONG(0x0000000F)
#define MB_ICONMASK __MSABI_LONG(0x000000F0)
#define MB_DEFMASK __MSABI_LONG(0x00000F00)
#define MB_MODEMASK __MSABI_LONG(0x00003000)
#define MB_MISCMASK __MSABI_LONG(0x0000C000)
每个MB_……
都是指不同的类型,当然,也有不同的,至于什么是什么,自己去试试。
如果你想同时实现MB_ICONERROR
类型和MB_YESNO
类型,你可以MB_ICONERROR|MB_YESNO
这段代码出自winuser.h头文件。
举个例子:
#include<windows.h>
int main() {
MessageBox(0,"Hello","Caption",MB_OK);
return 0;
}
效果图:
我们发现,这个函数是int型的,他返回的就是按下不同按键代表的值。
再举个例子:
#include<windows.h>
#include<bits/stdc++.h>
int main() {
int a;
a=MessageBox(0,"Are you OK?","Question",MB_YESNO);
if(a==6)
{
MessageBox(0,"You are OK.","Caption",MB_OK);
}
else
{
MessageBox(0,"You aren\'t' OK.","Caption",MB_OK);
}
return 0;
}
首先是这样的:
如果点是:
如果点否:
这个程序充分说明了点是返回的值是6,点否返回的值是7。
在Dev-C++里面,这个函数可以不用手打。
首先点击
选择MessageBox,接着就会有
MessageBox(,"Hello","Caption",MB_OK);
此时你只要输入句柄,再根据自身需要修改即可。
附:
如何知道按下某个键的返回值,你可以这样:
#include<windows.h>
#include<bits/stdc++.h>
int main() {
int a;
a=MessageBox(0,"Test","Test",/*窗口类型*/);
printf("%d\n",a);
return 0;
}