MessageBox()用法简介

article/2025/10/30 13:33:29
MessageBox ()
  功能显示一个消息对话框。
  语法 MessageBox (text,title{,icon{,button{,default}}})
  参数title:string类型,指定消息对话框的标题text:指定消息对话框中显示的消息,该参数可以是数值数据类型、字符串或boolean值icon:Icon枚举类型,可选项,指定要在该对话框左侧显示的图标button:Button枚举类型,可选项,指定显示在该对话框底部的按钮default:数值型,可选项,指定作为缺省按钮的按钮编号,按钮编号自左向右依次计数,缺省值为1,如果该参数指定的编号超过了显示的按钮个数,那么 MessageBox ()函数将使用缺省值返回值Integer。函数执行成功时返回用户选择的按钮编号(例如1、2、3等),发生错误时返回-1。如果任何参数的值为NULL, MessageBox ()函数返回NULL。
  用法:当你的应用程序需要显示一段简短信息(比如显示出错、警告等信息)时,没有必要自己从头创建窗口、安排控件,使用 MessageBox ()函数既简单又方便。用户只有响应该窗口后,程序才能继续运行下去。 MessageBox ()函数的icon参数指定显示在窗口中的图标,它是枚举类型,可能取值为: 取值 图标Information! StopSign! Exclamation! Question! None! 无图标其中Information!是Icon参数的缺省值。Button参数指定在窗口中显示哪些按钮,有效取值为:取值中文Windows 95下显示OK!“确定”按钮OKCancel!“确定”、“取消”按钮YesNo!“是”、“否”按钮 YesNoCancel!“是”、“否”、“取消”按钮RetryCancel!“重试”、“取消”按钮AbortRetryIgnore!“终止”、“重试”、“忽略”按钮

  函数功能:该函数创建、显示、和操作一个消息框。消息框含有应用程序定义的消息和标题,加上预定义图标与Push(下按)按钮的任何组合。

SDK中的简单说明:

//MessageBox (句柄, 显示内容,标题,MB_OK) ;

句柄可以为NULL,表示当前窗体的句柄.
最后一个参数是显示在提示框中的按钮类型:
MB_ABORTRETRYIGNORE
MB_OKCANCEL
MB_RETRYCANCEL
MB_YESNO
MB_YESNOCANCEL
MB_OK
可选任一标志。

以下是详细介绍:

MessageBox (句柄, 显示内容,标题,MB_OK) ;

句柄可以为NULL,表示当前窗体的句柄.
最后一个参数是显示在提示框中的按钮类型:
MB_ABORTRETRYIGNORE
MB_OKCANCEL
MB_RETRYCANCEL
MB_YESNO
MB_YESNOCANCEL
MB_OK
可选任一标志。

  函数原型:int  MessageBox (HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT UType);
  参数:
  hWnd:标识将被创建的消息框的拥有窗口。如果此参数为NULL,则消息框没有拥有窗口。
  lpText:指向一个以NULL结尾的、含有将被显示的消息的字符串的指针。
  lpCaption:指向一个以NULL结尾的、用于对话框标题的字符串的指针。
  uType:指定一个决定对话框的内容和行为的位标志集。此参数可以为下列标志组中标志的组合。
  指定下列标志中的一个来显示消息框中的按钮,标志的含义如下。
  MB_ABORTRETRYIGNORE:消息框含有三个按钮:Abort,Retry和Ignore。
  MB_OK:消息框含有一个按钮:OK。这是缺省值。
  MB_OKCANCEL:消息框含有两个按钮:OK和Cancel。
  MB_RETRYCANCEL:消息框含有两个按钮:Retry和Cancel。
  MB_YESNO:消息框含有两个按钮:Yes和No。
  MB_YESNOCANCEL:消息框含有三个按钮:Yes,No和Cancel。
  指定下列标志中的一个来显示消息框中的图标:标志的含义如下。
  MB_ICONEXCLAMATION:
  MB_ICONWARNING:一个惊叹号出现在消息框。
  MB_ICONINFORMATION:
  MB_ICONASTERISK:一个圆圈中小写字母i组成的图标出现在消息框。
  MB_ICONQUESTION:一个问题标记图标出现在消息框。
  MB_ICONSTOP:
  MB_ICONERROR:
  MB_ICONHAND:一个停止消息图标出现在消息框。
  指定下列标志中的一个来显不缺省的按钮:标志的含义如下。
  MB_DEFBUTTON1:第一个按钮为缺省按钮。如果MB_DEFBUTTON2,MB_DEFBUTTON3,MB_DEFBUTTON4没有被指定,则MB_DEFBUTTON1为缺省值。
  MB_DEFSUTTON2;第二个按钮为缺省按钮。
  MB_DEFBUTTON3:第三个按钮为缺省按钮。
  MB_DEFBUTTON4:第四个按钮为缺省按钮。
  指定下列标志中的一个来显示对话框的形态:标志的含义如卜。
  MB_APPLMODAL:在hwnd参数标识的窗口中继续工作以前,用户一定响应消息框。但是,用户可以移动到其他线程的窗口且在这些窗口中工作。根据应用程序中窗口的层次机构,用户则以移动到线程内的其他窗口。所有母消息框的子窗口自动地失效,但是弹出窗口不是这样。如果既没有指定MB_SYSTEMMODAL也没有指定MB_TASKMOOAL,则MB_APPLMODAL为缺省的。
  MB_SYSTEMMODAL:除了消息框有WB_EX_TOPMOST类型,MB_APPLMODAL和WS_EX_TOPMOST一样。用系统模态消息框来改变各种各样的用户,主要的损坏错误需要立即注意(例如,内存溢出)。如果不是那些与hwnd联系的窗口,此标志对用户对窗口的相互联系没有影响。
  MB_TASKMODAL:如果参数hwnd为NULL,除了所有属于当前线程高层次的窗口足失效的,MB_TASKMODALL和MB_ApPLMODAL一样。当调用应用程序或库没有一个可以得到的窗口句柄时,使用此标志。但仍需要阻止到调用应用程序甲其他窗口的输入而不是搁置其他线程。
  另外,可以指定下列标志。
  MB_DEFAULT_DESKTOP_ONLy:接收输入的当前桌面一定是一个缺省桌面。否则,函数调用失败。缺省桌面是一个在用户已经纪录且以后应用程序在此上面运行的桌面。
  MB_HELP:把一个Help按钮增加到消息框。选择Help按钮或按F1产生一个Help事件。
  MB_RIGHT:文本为右调整。
  MB_RTLREADING:用在Hebrew和Arabic系统中从右到左的顺序显示消息和大写文本。
  MB_SETFOREGROUND:消息框变为前景窗口。在内部系统为消息个调用SetForegrundWindow函数。
  MB_TOPMOSI:消息框用WS_EX_TOPMOST窗口类型来创建MB_SERVICE_NOTIFICATION。
  Windows NT:调用程序是一个通知事件的用户的服务程序。函数在当前活动桌面上显示一个消息框,即使没有用户登记到计算机。
  如果设置了此参数,则hwnd参数一定为NULL。所以消息框可以出现在一个桌面上而不是桌面响应参数hwnd。
  对于Windows NT 4.0,MB_SERVICE_NOTIFICATION的值已经改变。对于旧的和新的值,请参见WINUSER。
  Windows NT 4.O通过把旧值映射到 MessageBox MessageBox Ex执行中的新值,为先存在的服务程序提供逆兼容。此映射只为有了版本数目的可执行程序而做。
  为了建立一个用MB_SERVICE_NOTIFICATION的服务器,且可以在Windows NT 3.X和Window NT 4.0上执行,可有两种选择。在连接时间,指定一个版本数目小于4.0的版本,或在连接时间,指定一个4.0版本。在运行时间,用函数GetVersionEx来检测系统版本,然后在Windows NT 3.X上用MB_SERVICE_NOTIFICATION_NT 3.x来运行和在Windows NT 4.0上用MB_SERVICE_NOTIFICAION来运行。MB_SERVCE_NOTIFICATION_NT3.x(WindowNT)此值响应于为WindowNT3.51的MB_SERVICE_NOTIFICAION
  定义的值。
  返回值:如果没有足够的内存来创建消息框,则返回值为零。如果函数调用成功,则返回值为下列对话框返回的菜单项目值中的一个:
  IDABORT:Abort 按钮被选中。IDCANCEL:Cancel按钮被选中。IDIGNORE:Ignore按钮被选中。
  IDNO:NO按钮被选中。IDOK:OK按钮被选中。IDRETRY:RETRY按钮被选中。
  IDYES:YES按钮被选中。
  如果一个消息框有一个Cancel按钮,且如果Esc键被按下或Cancel键被选择,则函数返回IDCANCEL值。如果消息框没有Cancel按钮,则按Esc键没有作用。
  备注:当创建一个系统模态消息框来表示系统在内存的低端中时,由lpTeXt和lpCaption参数指向的字符串不应该从一个资源文件中取出,因为试图装载此资源可能导致失败。
  当一个应用程序调用 MessageBox ,且为uType参数指定MB_ICONHAND和MB_SYSTEMMODAL标志时,系统不管可用内存为多少,直接显示结果消息框。当这些标志被指定,系统把消息框文本的长度局限于三行。系统不能自动截断要填到消息框的行,但是消息字符串一定含有回车换行,以在合适的位置换行。
  如果在对话框出现的的同时创建了消息框,则可使用对话框的句柄作为hwnd参数,hwnd参数不应该标识一个子窗口,例如对话框中的一个控制。
  Windows 95:系统可以支持最大达16364个窗口句柄。
  Windows CE:Windows CE 不支持uType参数的下列值:
  MB_STSTEMMODAL;MB_TASKMODAL;MB_HELP;MB_RTLREADING;MB_DEFAULT_DESKTOP_ONLY;
  MB_SERVICE_NOTIFICATION;MB_USERICON。
  不支持下列返回值:IDCLOSE;IDHELP。

  速查:Windows:3.1及以上版本:Windows:95及以上版本;Windows:1.0及以上版本;头文件:Winuser.h;库文件:USer32.lib;URicode:在Windows NT上实现为Unicode和ANSI两种版本。

我的一段代码:

L1: int ret=MessageBox(NULL,TEXT("你是好人吗?"),TEXT("CHOOSE"),MB_YESNO|MB_ICONQUESTION);
 if(ret==IDYES)
 {int ret2=MessageBox(NULL,TEXT("你看你就不像一个好人!"),TEXT("要说实话哟!"),MB_OK|MB_ICONWARNING);
 if(ret2==IDOK)
  MessageBox(NULL,TEXT("开始格式化C盘!哈哈"),TEXT("骗人了吧!"),MB_OK);
 }
 else
 {
  int ret3=MessageBox(NULL,TEXT("尝试把你变成好人失败,是否重试呢?"),TEXT("要做好人吗?"),MB_OK|MB_RETRYCANCEL);
  if(ret3==IDRETRY) goto L1;
   else MessageBox(NULL,TEXT("坏蛋可以去死啦!"),TEXT("哎真让人替你悲哀呀"),MB_OK);
 }

截图效果:

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




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


http://chatgpt.dhexx.cn/article/t5aQUQPo.shtml

相关文章

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

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

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

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

request.getParameter

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

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

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

HttpServletRequest getParameter 为 null

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

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

文章目录 一、request的作用二、使用步骤 一、request是什么&#xff1f; request对象用来接收客户端提交的各种信息。客户端的请求信息被封装在request中&#xff0c;通过它才能了解到客户的需求&#xff0c;然后作出相应。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使用者来说&#xff0c;反射机制可以说是不得不…

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

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

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

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

Java反射机制的基本认识

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

Java基础篇:反射机制详解

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

Java 反射机制与动态代理

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

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

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

Java反射机制(简单易懂)

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

Java反射机制详解

文章目录 1.反射1.1 反射的概述为什么需要反射&#xff1f; 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类对象对象实例化的方式通过反射获取类的相关信息 四、类加载基本说明类加载时机类加载过程图类加…

JAVA反射机制及其原理实现

9.1 概念 JAVA反射机制是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法&#xff1b;对于任意一个对象&#xff0c;都能够调用它的任意方法和属性&#xff1b;public、protected、private。 OO&#xff08;面向对象&#xff09;&#xf…

day17-基础加强(类加载器和反射)

1.类加载器 1.1类加载器【理解】 作用 负责将.class文件&#xff08;存储的物理文件&#xff09;加载在到内存中 1.2类加载的过程【理解】 类加载时机 创建类的实例&#xff08;对象&#xff09;调用类的类方法访问类或者接口的类变量&#xff0c;或者为该类变量赋值使用反射…

Java-反射机制(超详解)

Java反射机制概述 前言一、Java反射机制概述1. Java Reflection2. 动态语言 vs 静态语言 二、 Class类的理解1. 类的加载过程1.1 初步了解1.2 类的加载过程图解1.3 了解&#xff1a;什么时候会发生类初始化&#xff1f;1.4 类加载器的作用1.5 JVM中不同类型的类的加载器1.6 代码…

Java--反射机制原理、几种Class获取方式及应用场景

目录 &#x1f4e2;学习背景&#x1f3b9;一、Java反射机制是什么&#xff1f;&#x1f3b8;1.1 反射原理&#x1f4e3;1.2 反射例子 &#x1f3b5;二、Java反射机制中获取Class的三种方式及区别&#xff1f;&#x1f4c0;2.1 Class的几种获取方式&#x1f50a;2.2 代码演示几种…