MessageBox函数

news/2025/2/24 21:34:44
 
为了显示提示信息给用户, Windows 是提供了一个非常方便的 API 函数 MessageBox 给用户使用,使用这个 API 函数可以显示简单的文字信息出来,提醒或提示用户进行下一步操作。
函数声明如下:
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
从上面可以看出, Windows API 是两种声明,一种是使用到 ANSI 编码,一种是使用到 UNICODE 编码的 API 函数。通过宏定义把这两种 API 名称统一到 MessageBox 的声明。这是一种使用选择不同 API 的技术,在今后的编程里,大多数都需要使用 UNICODE 编码了,因为可以适应不同国家的语言显示,可以国际化编程,特别对于中文支持更加需要 UNICODE 编程
下面来解释一下参数的定义:
hWnd 是指向父窗口的句柄,如果没有父窗口,可以把这个参数设置为 NULL
lpText 是需要显示的文字。显示字符串的起始地址。
lpCaption 是在窗口上标题显示。
uType 是窗口组合按钮和显示图标的类型。后面再详细说明。
返回值 是一个整数,如果有取消按钮,并且按下 ESC 键就返回 IDCANCEL 。如果有其它按钮,并且按下,就返回相应的值。主要的值如下:
IDABORT 放弃按钮
IDCANCEL 取消按钮
IDCONTINUE 继续按钮
IDIGNORE 忽略按钮
IDNO 否按钮
IDOK 确定按钮
IDRETRY 重试按钮
IDTRYAGAIN 重试按钮
IDYES 是按钮
 
演示例子如下:


上面显示的代码是:
#001 //MB_DEFBUTTON4
#002 int CMsgBox::Show_MB_DEFBUTTON4(void)
#003 {
#004 // 显示 MB_DEFBUTTON4
#005 return ::MessageBox(NULL, _T("MB_YESNOCANCEL|MB_DEFBUTTON4|MB_HELP"),
#006         _T(" 第一个应用程序 "), MB_YESNOCANCEL|MB_DEFBUTTON4|MB_HELP|MB_ICONQUESTION);
#007 }
 
uType 常用的选择值如下:
按钮类型:
MB_ABORTRETRYIGNORE
MB_CANCELTRYCONTINUE
MB_HELP
MB_OK
MB_OKCANCEL
MB_RETRYCANCEL
MB_YESNO
MB_YESNOCANCEL
 
图标类型:
MB_ICONEXCLAMATION
MB_ICONWARNING
MB_ICONINFORMATION
MB_ICONASTERISK
MB_ICONQUESTION
MB_ICONSTOP
MB_ICONERROR
MB_ICONHAND
 
设置缺省按钮值:
MB_DEFBUTTON1
MB_DEFBUTTON2
MB_DEFBUTTON3
MB_DEFBUTTON4
 
修改显示信息窗口的属性:
MB_APPLMODAL
MB_SYSTEMMODAL
MB_TASKMODAL
MB_RIGHT
MB_RTLREADING
MB_SETFOREGROUND
MB_TOPMOST
MB_SERVICE_NOTIFICATION
文章来源:https://blog.csdn.net/zmq5411/article/details/6758051
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.niftyadmin.cn/n/1403512.html

相关文章

针对CDP协议攻击分析及安全防护

针对CDP协议攻击分析及安全防护熟悉Cisco的朋友都知道CDP协议是思科公司独特的发现协议,在思科公司出产的所有路由器和交换机里面都能运行此协议,一台运行C D P的路由器或交换机能够得知与它直接相连的邻居端口和主机名信息。也可以得知一些附加信息如&a…

内核printk日志信息的级别

日志级别一共有8个级别,printk的日志级别定义如下(在include/linux/kernel.h中):   #define KERN_EMERG 0/*紧急事件消息,系统崩溃之前提示,表示系统不可用*/   #define KERN_ALERT 1/*报告消息&…

WM_COMMAND和WM_NOTIFY有什么区别?

在Windows3.1里,控件会将mouse, keybord等等的消息通知它的父窗口, 使用的消息就只有WM_COMMAND, 事件种类和控件ID被包含在wParam中, 控件的句柄包含在lParam中。由于wParam和 lParam已经满了,当控件要向父窗口发送其它特殊消息同…

Cisco Works 2000 网络管理软件安装、配置全过程

下面是在windows 2000 server 下安装ciscoworks 2000的过程。(附件中是标准avi格式文件,由于上传附件大小限制,更多内容见Sina播客) 浏览全部原创视频请见:http://you.video.sina.com.cn/b/18168631-1443650204.htmlhttp://you.video.sina.com.cn/b/1817…

ubuntu安装eclipse

1.安装eclipse: 从http://www.eclipse.org/downloads/?osTypelinux&releaseundefined下载eclipse 把下载到的eclipse-jee-luna-R-linux-gtk-x86_64.tar.gz放到 /usr/eclipse 解压:tar -xzvf eclipse-jee-luna-R-linux-gtk-x86_64.tar.gz 2.生成桌面图标&am…

Linux系统存储交换机日志

Linux系统存储交换机日志日志记录是为系统设备在运行过程中报告其运行情况而设的, 为了保证系统正常运行, 解决每一天可能遇到的各种各样的问题, 网络管理员必须认真地读取日志记录。目前公司系统路由器共有50 台左右, 均为Cisco …

android遥控长按增加第二功能

在做电视盒子的时候我们会把遥控的电源键做成两个功能:短按时让盒子直接进入休眠模式,长按时弹出选择菜单,此时可以选择进入休眠、关机、重启。 最近接到一个任务:把遥控的一个按键做成类似电源键一样具有双功能:短按…

关我什么事,我来打酱油

汉语:关我什么事,我来打酱油。 英语:Its none of my business .I come to buy some sauce. 德语:Ich bezogen, was ich kam zu einer Soja-Soe. 法语:Je lis ce qui, jen suis arriv une sauce de soja. 荷兰语:Ik gerelateerd wat, kwam ik tot een sojasaus. …