admin 管理员组文章数量: 887021
2023年12月19日发(作者:个人博客webgl)
使用过Windows及其应用软件的人肯定熟悉如图1所示的消息框,这在VB中可用MsgBox函数来实现。
图1 Word中的保存文件消息框
MsgBox函数的使用格式如下:
变量=MsgBox(提示[,按钮][,标题])
其中:
(1) 变量 用于指定接收函数的返回值。MsgBox函数的返回值是一个整数,因此变量一般为整型变量。
(2) 提示与标题 意义同InputBox函数。
(3) 按钮 整型表达式,决定消息框中按钮的数目、类型及出现在消息框上的图标类型。其设置见表1。
在表1中,“按钮”设置值被分成了三组。具体使用时,由每一组中取一个值相加而成。当然,并非每次都要取三个值,也可以取两个、一个甚至全部省略。
表1 消息框中“按钮”设置值及意义
分组
vbOKOnly
常数 值
0
1
2
3
4
5
16
32
48
64
0
只显示“确定”按钮
显示“确定”及“取消”按钮
显示“中断”、“重试”及“忽略”按钮
显示 “是”、“否”及“取消”按钮
显示“是”及“否”按钮
显示“重试”及“取消”按钮
显示红色的STOP标志,用于严重警告信息
显示“?”图标,用于询问信息
显示“!”图标,用于警告信息
显示“i”图标,用于一般信息
第一个按钮是缺省值
描述
按钮数目及类型
vbOKCancel
vbAbortRetryIgnore
vbYesNoCancel
vbYesNo
vbRetryCancel
vbCritical
图标类型
vbQuestion
vbExclamation
vbInformation
vbDefaultButton1
vbDefaultButton2
vbDefaultButton3
默认按钮
256 第二个按钮是缺省值
512 第三个按钮是缺省值
如要产生图1所示的消息框,可用如下语句:
x=MsgBox("是否保存对“第四章 基本控制结构.doc”的修改?", 3 + vbExclamation
+ vbdefultbutton1, "Microsoft Word")
在实习时,可以将除提示与标题外的其它参数,按表中的内容进行更换,体会各种不同组合对消息框内容的影响。这一部分一定要自己在实习的时候多试一试。
变量x用于记录用户按了消息框中哪一个按钮,不同的按钮返回的值不同。各个按钮的返回值见表2。
表2 MsgBox函数按钮及其返回值对照表
常数
vbOK
vbCancel
vbAbort
vbRetry
vbIgnore
vbYes
vbNo
值
1
2
3
4
5
6
7
按钮
确定
取消
终止
重试
忽略
是
否
后续程序可根据变量不同的返回值编写程序代码,以完成相应的任务。
例1 MsgBox函数应用举例。以前面任何一个例题为例,当单击窗体的“关闭”按钮时程序不会立即结束运行,而是给用户一个确认信息提示,如图2所示。
分析:在窗体的Form_QueryUnload事件过程中有Cancel和UnloadMode两个参数,可以通过Cancel的值来决定窗体是否退出。当Cancel值为0时正常退出,非0值时取消退出。
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
x = MsgBox("确认要结束程序吗?", vbQuestion + vbYesNo + 256, "确认退出")
If x = vbYes Then
'单击是(Y)按纽
Cancel = 0
Else
Cancel = 1
'单击否(N)按纽
End If
End Sub
将这段代码加到你任何一个程序代码中,当单击窗体关闭按图2 MsgBox函数举例
钮时,就可以选择是否退出了。
有时,程序中只需要用MsgBox函数向用户提供一个信息,并不需要返回值,这种情况只需一个“确定”按钮。VB中对不需要返回值的MsgBox函数调用格式如下:
MsgBox 提示[,按钮][,标题]
这种方式在简单的程序设计中可以做为输出结果的有效方法,更多的是在调试程序时用以检查程序的运行情况。
第2章已经学习了VB系统常数,通过MsgBox函数的学习,应进一步加深对系统常数作用的理解。从以上两个表中可以看到,MsgBox函数按钮的取值很多,如果全部按直接常数来记忆就容易混淆,而记忆系统常数就要容易得多,例如记住系统常量“vbYesNoCancel”就要比记忆直接常数“3”容易,同样,在返回值中,记住“vbNo”比记“7”要容易得多。
版权声明:本文标题:msgbox函数用法详解 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1702962488h437569.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论