MessageBox()函数用法及参数详解

article/2025/10/30 13:51:26

MessageBox函数

显示模式对话框,其中包含系统图标,一组按钮和简要的特定于应用程序的消息,例如状态或错误信息。消息框返回一个整数值,指示用户单击的按钮。

语法

int MessageBox(HWND    hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT    uType
);

参数

hWnd

类型:HWND

要创建的消息框的所有者窗口的句柄。如果此参数为NULL,则消息框没有所有者窗口。

lpText

类型:LPCTSTR

要显示的消息。如果字符串由多行组成,则可以使用每行之间的回车符和/或换行符分隔行。

lpCaption

类型:LPCTSTR

对话框标题。如果此参数为NULL,则默认标题为“ 错误”

uType

输入:UINT

对话框的内容和行为。此参数可以是来自以下标志组的标志的组合。

要指示消息框中显示的按钮,请指定以下值之一。

含义

MB_ABORTRETRYIGNORE

0x00000002L

消息框包含三个按钮:AbortRetryIgnore

MB_CANCELTRYCONTINUE

0x00000006L

消息框包含三个按钮:取消再试一次继续。使用此消息框类型而不是MB_ABORTRETRYIGNORE。

MB_HELP

0x00004000L

在消息框中 添加“ 帮助”按钮。当用户单击“ 帮助”按钮或按F1时,系统会向所有者发送WM_HELP消息。

MB_OK

0x00000000L

消息框包含一个按钮:确定。这是默认值。

MB_OKCANCEL

0x00000001L

消息框包含两个按钮:确定取消

MB_RETRYCANCEL

0x00000005L

消息框包含两个按钮:重试取消

MB_YESNO

0x00000004L

消息框包含两个按钮:

MB_YESNOCANCEL

0x00000003L

消息框包含三个按钮:取消

 

要在消息框中显示图标,请指定以下值之一。

含义

MB_ICONEXCLAMATION

0x00000030L

消息框中会出现一个惊叹号图标。

MB_ICONWARNING

0x00000030L

消息框中会出现一个惊叹号图标。

MB_ICONINFORMATION

0x00000040L

消息框中将出现一个由圆圈 中的小写字母i组成的图标。

MB_ICONASTERISK

0x00000040L

消息框中将出现一个由圆圈 中的小写字母i组成的图标。

MB_ICONQUESTION

0x00000020L

消息框中会出现一个问号图标。不再推荐使用问号消息图标,因为它不能清楚地表示特定类型的消息,并且因为作为问题的消息的措辞可以应用于任何消息类型。此外,用户可以将消息符号问号与帮助信息混淆。因此,请勿在消息框中使用此问号消息符号。系统继续支持其仅包含向后兼容性。

MB_ICONSTOP

0x00000010L

消息框中会出现一个停止标志图标。

MB_ICONERROR

0x00000010L

消息框中会出现一个停止标志图标。

MB_ICONHAND

0x00000010L

消息框中会出现一个停止标志图标。

 

要指示默认按钮,请指定以下值之一。

含义

MB_DEFBUTTON1

0x00000000L

第一个按钮是默认按钮。

MB_DEFBUTTON1是默认值,除非指定了MB_DEFBUTTON2MB_DEFBUTTON3MB_DEFBUTTON4

MB_DEFBUTTON2

0x00000100L

第二个按钮是默认按钮。

MB_DEFBUTTON3

0x00000200L

第三个按钮是默认按钮。

MB_DEFBUTTON4

0x00000300L

第四个按钮是默认按钮。

 

要指示对话框的模态,请指定以下值之一。

含义

MB_APPLMODAL

0x00000000L

在继续在hWnd参数标识的窗口中工作之前,用户必须响应消息框。但是,用户可以移动到其他线程的窗口并在这些窗口中工作。

根据应用程序中窗口的层次结构,用户可能能够移动到线程内的其他窗口。消息框的父级的所有子窗口都将自动禁用,但弹出窗口不会自动禁用。

如果既未指定MB_SYSTEMMODAL指定MB_TASKMODAL,MB_APPLMODAL是缺省值。

MB_SYSTEMMODAL

0x00001000L

与MB_APPLMODAL相同,但消息框具有WS_EX_TOPMOST样式。使用系统模式消息框通知用户需要立即注意的严重且可能具有破坏性的错误(例如,内存不足)。此标志不会影响用户与除与hWnd关联的窗口之外的窗口进行交互的能力。

MB_TASKMODAL

0x00002000L

MB_APPLMODAL相同,但如果hWnd参数为NULL,则禁用属于当前线程的所有顶级窗口。当调用应用程序或库没有可用的窗口句柄但仍需要阻止输入到调用线程中的其他窗口而不挂起其他线程时,请使用此标志。

 

要指定其他选项,请使用以下一个或多个值。

含义

MB_DEFAULT_DESKTOP_ONLY

0x00020000L

与交互式窗口站的桌面相同。有关更多信息,请参阅窗口站。

如果当前输入桌面不是默认桌面,则在用户切换到默认桌面之前,MessageBox不会返回。

MB_RIGHT

0x00080000L

该文本是正确的。

MB_RTLREADING

0x00100000L

在希伯来语和阿拉伯语系统上使用从右到左的阅读顺序显示消息和标题文本。

MB_SETFOREGROUND

0x00010000L

消息框成为前景窗口。在内部,系统调用消息框的SetForegroundWindow函数。

MB_TOPMOST

0x00040000L

使用WS_EX_TOPMOST窗口样式创建消息框。

MB_SERVICE_NOTIFICATION

0x00200000L

呼叫者是通知用户事件的服务。即使没有用户登录到计算机,该功能也会在当前活动桌面上显示一个消息框。

终端服务:如果调用线程具有模拟令牌,则该函数会将消息框定向到模拟令牌中指定的会话。

如果设置了此标志,则hWnd参数必须为NULL。这样消息框可以显示在与hWnd对应的桌面以外的桌面上。

有关使用此标志的安全注意事项的信息,请参阅交互式服务。特别要注意,此标志可以在锁定的桌面上生成交互式内容,因此应仅用于非常有限的一组场景,例如资源耗尽。

返回值类型

输入:int

如果一个消息框有一个取消按钮,则该函数将返回IDCANCEL如果或者ESC键被按下或值取消按钮被选择。如果消息框没有“ 取消”按钮,则按ESC无效。

如果函数失败,则返回值为零。要获取扩展错误信息,请调用GetLastError。

如果函数成功,则返回值是以下菜单项值之一。

返回代码/值描述

IDABORT

3

中止按钮被选中。

IDCANCEL

2

“ 取消”按钮已被选中。

IDCONTINUE

11

继续按钮被选中。

IDIGNORE

“ 忽略”按钮已被选中。

证件号码

7

没有按钮被选中。

IDOK

1

OK按钮被选中。

IDRETRY

4

选择了 “ 重试”按钮。

IDTRYAGAIN

10

选中了 “ 再试一次”按钮。

IDYES

6

按钮被选中。

备注

通过将uType参数设置为相应的标志值,可以在消息框中使用以下系统图标。

图标标记值
MB_ICONHAND,MB_ICONSTOP和MB_ICONERROR的图标MB_ICONHANDMB_ICONSTOPMB_ICONERROR
MB_ICONQUESTION的图标MB_ICONQUESTION
MB_ICONEXCLAMATION和MB_ICONWARNING的图标MB_ICONEXCLAMATIONMB_ICONWARNING
MB_ICONASTERISK和MB_ICONINFORMATION的图标MB_ICONASTERISKMB_ICONINFORMATION

 

在MessageBox显示字符串的开头添加由Unicode格式化字符U + 200F表示的两个从右到左标记(RLM),由MessageBox呈现引擎解释,以便将MessageBox的读取顺序呈现为从右到左(RTL)。

当您使用系统模式消息框指示系统内存不足时,不应从资源文件中获取lpTextlpCaption参数指向的字符串,因为尝试加载资源可能会失败。

如果在存在对话框时创建消息框,请使用对话框的句柄作为hWnd参数。该的hWnd参数不应该确定一个子窗口,如对话框中的控制。

例子

在以下示例中,应用程序显示一个消息框,在发生错误情况后提示用户执行操作。消息框显示描述错误情况以及如何解决错误的消息。该MB_CANCELTRYCONTINUE风格指导的MessageBox提供三个按钮与用户可以选择如何继续。该MB_DEFBUTTON2样式设置默认的焦点在消息框中的第二个按钮,在这种情况下,再试一次按钮。

C ++复制

int DisplayResourceNAMessageBox()
{int msgboxID = MessageBox(NULL,(LPCWSTR)L"Resource not available\nDo you want to try again?",(LPCWSTR)L"Account Details",MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2);switch (msgboxID){case IDCANCEL:// TODO: add codebreak;case IDTRYAGAIN:// TODO: add codebreak;case IDCONTINUE:// TODO: add codebreak;}return msgboxID;
}

下图显示了上述代码示例的输出:

消息框

 

 

 

 

 

 

 

 

 


http://chatgpt.dhexx.cn/article/3fxfephR.shtml

相关文章

MessageBox.Show 用法介绍

简介摘要:MessageBox.Show (String) 显示具有指定文本的消息框。 由 .NET Compact Framework 支持。 MessageBox.Show (IWin32Window, String) 在指定对象的前面显示具有指定文本的消息框。 MessageBox.Show (String) 显示具有指定文本的消息框。 由 .NET Compac…

C# MessageBox用法大全

C#中MessageBox用法大全(附效果图) 我们在程序中经常会用到MessageBox。 MessageBox.Show()共有21中重载方法。现将其常见用法总结如下: 1.MessageBox.Show("Hello~~~~"); 最简单的,只显示提示信息。 2.MessageBox.S…

MessageBox 用法详解与实例

摘自:教育网-自学之路:http://www.selfroad.com.cn/content.asp?id83 MessageBox这个函数可以在VC里面显示一个标准对话框,是比较常用的一个信息对话框,其不仅能够定义显示的信息内容、信息提示图标,而且可以定义按钮…

MessageBox()用法简介

MessageBox () 功能显示一个消息对话框。 语法 MessageBox (text,title{,icon{,button{,default}}}) 参数title:string类型,指定消息对话框的标题text:指定消息对话框中显示的消息,该参数可以是数值数据类型、字符串或boolean值…

C#中MessageBox用法大全(附效果图)

C#中MessageBox用法大全(附效果图) 我们在程序中经常会用到MessageBox。 MessageBox.Show()共有21中重载方法。现将其常见用法总结如下: 1.MessageBox.Show("Hello~~~~"); 最简单的,只显示提示信息。 2.MessageBox.S…

C语言基础进阶之 MessageBox()用法简介

MessageBox () 功能显示一个消息对话框。 语法 MessageBox (text,title{,icon{,button{,default }}}) 参数title:string类型,指定消息对话框的标题text:指定消息对话框中显示的消息,该参数可以是数值数据类型、字符串或boolea…

request.getParameter

request.getParameter(“xxx”)的参数的取值的几种可能: Html中form表单中标签的name属性: 请输入用户姓名: request.getParameter(“username”); Html中form表单提交时的action的参数 请输入用户姓名: request.getParamet…

java中的getparameter_Java中request.getParameter(realName)获取参数值为中文时乱码的解决方案...

说明:貌似这个问题绝大多数人都遇到过,开发的时候好好的,部署之后就出问题了!原因是因为HTTP请求传输时将URL以ISO-8859-1编码,服务器收到字节流后默认会以ISO-8859-1编码来解码成字符流,所以会造成中文乱码…

HttpServletRequest getParameter 为 null

一、简介 HttpServletRequest 提供了 getParameter 方法,可以非常方便获取请求行/请求体中key/value形式的数据(x-www-form-urlencoded、multipart/form-data,其都是key/value形式,只是对数据编码方式有差别),对于application/js…

JSP内置对象request——getParameter的使用

文章目录 一、request的作用二、使用步骤 一、request是什么? request对象用来接收客户端提交的各种信息。客户端的请求信息被封装在request中,通过它才能了解到客户的需求,然后作出相应。request是HttpServletRequest类的实例。request具有…

理解Java反射机制

理解Java反射机制 1. 概述2. 反射原理3. 反射的优缺点4. 反射的用途5. 反射相关的类5.1 Constructor5.2 Field5.3 Method5.4 Class类的原理 6. 反射实例6.1 创建对象6.2 获取/修改属性6.3 调用方法6.4 调用内部类 7. 小节 对于Java使用者来说,反射机制可以说是不得不…

Java 反射机制快速入门及常见方法全归纳。

目录 一、反射机制 1、基本介绍 2、原理示意图 3、反射基本代码实现 4、反射性能 二、Class 类 1、基本介绍 2、获取 Class类对象的方式 3、有 Class对象的类 三、类加载 1、基本介绍 2、连接阶段 四、常见方法取类的结构信息 1、常用类的方法 2、通过反射创建对…

利用java反射机制修改属性值

利用java反射机制修改属性值 本文将介绍如何利用java反射机制修改属性值,废话不多说,直接上代码 1、新建一个实体类,添加属性test以及获取属性值的方法getTest() public class ReflectTest {//测试修改属性String test "修改前的值&q…

Java反射机制的基本认识

关于Java类加载 编译:java文件编译后生成class字节码文件类加载机制:JVM把class文件加载到内存,并对数据进行校验、准备、解析、初始化,最终形成JVM可以直接使用的Java类型的过程。 关于Java反射 Java反射机制是在运行状态中&…

Java基础篇:反射机制详解

一、什么是反射: (1)Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。 …

Java 反射机制与动态代理

1.什么是反射机制? Java反射机制是在运行状态中,对任意一个类(class文件)都能知道这个类的属性和方法、对于任意一个对象都能调用它的属性和方法,这种动态获取的信息以及调用对象的方法的功能称为Java语言的反射机制。…

java反射机制面试_java反射机制面试题及答案整理,java反射面试题

大家对于java反射机制应该都是很了解的吧,那么下面要给大家分享的就是一组和java反射机制有关的java面试题,下面一起来看看java反射面试题都有哪些吧! java反射机制面试题: 1、java反射机制的作用是什么? 答案:在运行的时候构造任意一个类的…

Java反射机制(简单易懂)

文章目录 前言一、反射机制二、反射的用途三、反射相关的类(重要)3.1 Class类(反射机制的起源 )3.2 通过反射调用构造方法3.3 通过反射调用普通方法3.4 通过反射调用类属性 四、反射的优缺点总结 前言 博主个人社区:开发与算法学习社区 博主个…

Java反射机制详解

文章目录 1.反射1.1 反射的概述为什么需要反射? 1.2 获取Class类对象的三种方式1.2.1 代码示例 1.3 反射获取构造方法并应用1.3.1 Class类获取构造方法对象的方法1.3.2 代码示例1.3.3 Constructor类用于创建对象的方法1.3.4 代码示例1.3.5 小结 1.4 反射获取成员变量…

Java反射机制

Java反射机制 前言一、反射的概述反射的定义反射的作用 反射的应用场合 二、Java反射机制反射机制原理示意图Java Reflection反射使用步骤 三、 Class类基本介绍常用方法获取Class类对象对象实例化的方式通过反射获取类的相关信息 四、类加载基本说明类加载时机类加载过程图类加…