MessageBox函数使用方法(C++)

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;
} 

猜你喜欢

转载自blog.csdn.net/liuzich/article/details/107818270