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”要容易得多。


本文标签: 按钮 函数 消息 返回值 用于