Windows程序设计 MessageBox

1、简介

       MessageBox是用来显示一个模态的对话框的,其中包含一个系统图标、 一组按钮和一个简短的特定于应用程序消息,如状态或错误的信息。消息框中返回一个整数值,该值指示用户单击了哪个按钮。
       所属头文件:Windows.h和sfxwin.h。

1、函数原型

在WinUser.h中,定义如下:

WINUSERAPI
int
WINAPI
MessageBoxA(
    __in_opt HWND hWnd,
    __in_opt LPCSTR lpText,
    __in_opt LPCSTR lpCaption,
    __in UINT uType);
WINUSERAPI
int
WINAPI
MessageBoxW(
    __in_opt HWND hWnd,
    __in_opt LPCWSTR lpText,
    __in_opt LPCWSTR lpCaption,
    __in UINT uType);
#ifdef UNICODE
#define MessageBox  MessageBoxW
#else
#define MessageBox  MessageBoxA
#endif // !UNICODE

参数如下:
hWnd:此参数代表消息框拥有的窗口。如果为NULL,则消息框没有拥有窗口
lpText:息框的内容
lpCaption:消息框的标题
uType:指定一个决定对话框的内容和行为的位标志集

uType参数的值可以是下列标志组中标志的组合:

按钮参数含义备注
MB_OK0x00000000L默认值。显示确认按钮按钮弹窗
MB_OKCANCEL0x00000001L消息框含有两个按钮:OK和Cancel按钮弹窗
MB_ABORTRETRYIGNORE0x00000002L有Abort(放弃),Retry(重试)和Ignore(跳过)按钮弹窗
MB_YESNOCANCEL0x00000003L消息框含有三个按钮:Yes,No和Cancel按钮弹窗
MB_YESNO0x00000004L有是和否在里面按钮弹窗
MB_RETRYCANCEL0x00000005L有Retry(重试)和Cancel(取消)按钮弹窗
MB_CANCELTRYCONTINUE0x00000006Lwindows版本大于等于0x0500,有Retry(重试)、Cancel(取消)和continue(继续)按钮弹窗
MB_ICONHAND0x00000010L图标弹窗
MB_ICONQUESTION0x00000020L图标弹窗
MB_ICONEXCLAMATION0x00000030L图标 弹窗
MB_ICONASTERISK0x00000040L图标弹窗
MB_USERICON0x00000080Lwindwos版本大宇等0x0400才可使用,图标弹窗
MB_ICONWARNING0x00000030Lwindwos版本大宇等0x0400才可使用,图标弹窗
MB_ICONERROR0x00000010Lwindwos版本大宇等0x0400才可使用,图标弹窗
MB_ICONINFORMATION0x00000040L图标弹窗
MB_ICONSTOP0x00000010L图标弹窗
MB_DEFBUTTON10x00000000L默认按钮弹窗
MB_DEFBUTTON20x00000100L默认按钮弹窗
MB_DEFBUTTON30x00000200L默认按钮弹窗
MB_DEFBUTTON40x00000300Lwindwos版本大宇等0x0400才可使用,默认按钮弹窗
MB_APPLMODAL0x00000000L对话框弹窗
MB_SYSTEMMODAL0x00001000L对话框 弹窗
MB_TASKMODAL0x00002000L对话框弹窗
MB_HELP0x00004000Lwindwos版本大宇等0x0400才可使用,对话框弹窗
MB_NOFOCUS0x00008000L特殊声明弹窗
MB_SETFOREGROUND0x00010000L弹窗
MB_DEFAULT_DESKTOP_ONLY0x00020000L弹窗
MB_TOPMOST0x00040000Lwindwos版本大宇等0x0400才可使用弹窗
MB_RIGHT0x00080000Lwindwos版本大宇等0x0400才可使用弹窗
MB_RTLREADING0x00100000Lwindwos版本大宇等0x0400才可使用弹窗

返回值

ID含义
IDOK1点击OK按钮
IDCANCEL2点击了取消按钮
IDABORT3点击了中止按钮
IDRETRY4点击了重试按钮
IDIGNORE5点击了忽略按钮
IDYES6点击了是按钮
IDNO7点击了否按钮
IDCLOSE8windows版本大于等于0x0400才可使用
IDHELP9windows版本大于等于0x0400才可使用
IDTRYAGAIN10windows版本大于等于0x0500才可使用
IDCONTINUE11windows版本大于等于0x0500才可使用
IDTIMEOUT32000windows版本大于等于0x0501才可使用
int nScreenWide = GetSystemMetrics(SM_CXSCREEN);
int nScreenHight = GetSystemMetrics(SM_CYSCREEN);
MessageBoxPrintf(TEXT("Test"), TEXT("The screen is test,wide: %d hhight: %d"), nScreenWide, nScreenHight);


int MessageBoxPrintf(TCHAR* szCaption, TCHAR* szFormat, ...)
{
	TCHAR szBuffer[1024] = { 0 };
	va_list pAmgList;

	va_start(pAmgList, szFormat);

	_vsntprintf(szBuffer, sizeof(szBuffer) / sizeof(TCHAR), szFormat, pAmgList);

	va_end(pAmgList);

	return MessageBox(NULL, szBuffer, szCaption, MB_RTLREADING);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值