点击或拖拽改变大小

Functions.MessageBox 方法

X#
显示一个用户定义的对话框。

命名空间:  XSharp.VFP
程序集:  XSharp.VFP (在 XSharp.VFP.dll 中) 版本:2.22 GA
语法
 FUNCTION MessageBox(
	eMessageText AS USUAL,
	 nDialogBoxType AS LONG,
	 cTitleBarText AS STRING,
	 nTimeOut AS LONG
) AS LONG
查看代码

参数

eMessageText
类型:__Usual
指定出现在对话框中的文本。
您也可以指定任何其他值代替 eMessageText。运行时会在显示之前将该值转换为字符串。
nDialogBoxType
类型:Int32
指定对话框中出现的按钮和图标、对话框显示时的默认按钮以及对话框的行为。
有关更多信息,请参见备注。
cTitleBarText
类型:String
指定出现在对话框标题栏中的文本。
如果省略 cTitleBarText,则程序名称会出现在标题栏中。
nTimeOut
类型:Int32
指定在没有键盘或鼠标输入的情况下,X# 显示 eMessageText 的毫秒数,然后清除 eMessageText
您可以指定任何有效的超时值。小于 1 的值在用户输入之前永不超时,并且行为与省略 nTimeout 参数相同。

返回值

类型:Int32
数值型。MessageBox( ) 返回一个值,该值指示在对话框中选择了哪个按钮。
下面的表格列出了 MessageBox( ) 为每个按钮返回的值。
定义的常量描述
1 IDOK确定
2 IDCANCEL取消
3 IDABORT中止
4 IDRETRY重试
5 IDIGNORE忽略
6 IDYES
7 IDNO
在带有取消按钮的对话框中,按 Esc 退出对话框返回的值与选择取消相同(2)。 当发生超时时,MessageBox( ) 返回值为 -1。
备注
在下表中,对话框按钮值 0 到 5 指定对话框中出现的按钮。
图标值 16、32、48 和 64 指定对话框中出现的图标。
默认值 0、256 和 512 指定对话框中的默认按钮。 用以指定显示对话框时所选择的默认按钮。
省略 nDialogBoxType 等同于为 nDialogBoxType 指定值 0。
定义的常量描述
0 MB_OK仅确定按钮
1 MB_OKCANCEL确定和取消按钮
2 MB_ABORTRETRYIGNORE中止、重试和忽略按钮
3 MB_YESNOCANCEL是、否和取消按钮
4 MB_YESNO是和否按钮
5 MB_RETRYCANCEL重试和取消按钮
16 MB_ICONSTOP停止标志
32 MB_ICONQUESTION问号
48 MB_ICONEXCLAMATION感叹号
64 MB_ICONINFORMATION信息 (i) 图标
0 MB_DEFBUTTON1第一个按钮
256 MB_DEFBUTTON2第二个按钮
512 MB_DEFBUTTON3第三个按钮
nDialogBoxType 可以是前面表格中每个表格的最多三个值的总和。
例如,如果 nDialogBoxType 为 290(2+32+256),则指定的对话框具有以下特征:
- 中止、重试和忽略按钮。
- 消息框显示问号图标。
- 第二个按钮,重试,是默认按钮。

使用定义的常量如 MB_ABORTRETRYIGNORE + MB_ICONQUESTION + MB_DEFBUTTON2 比 2 + 32 + 256 更具可读性。
问号图标不再推荐使用,因为它不能清楚地表示特定类型的消息,并且将消息措辞为问题可能适用于任何消息类型。此外,用户可能会将消息符号问号与帮助信息混淆。因此,不建议在消息框中使用问号符号。 系统继续支持包含仅用于向后兼容。

MessageBox( ) 函数根据传递的参数类型有几种重载。
第一个参数是必需的,并且始终是 eMessageText。 但是,可选的第二个参数可以是 nDialogBoxType(如果类型为 Numeric)或 cTitleBarText(如果类型为 Character)。
nTimeout 参数始终假定为传递的第二个可选数字参数。
有效示例包括:

X#
1MessageBox("HELLO","MyTitle",68,6000)
2MessageBox("HELLO",68,"MyTitle",6000)
3MessageBox("HELLO",68,6000)
4MessageBox("HELLO",68,6000,"MyTitle")
示例
X#
 1eMessageTitle = '我的应用程序'
 2eMessageText = '未找到记录。您想再次搜索吗?'
 3nDialogType = 4 + 16 + 256
 4
 5* 4 = 是和否按钮
 6* 16 = 停止标志图标
 7* 256 = 第二个按钮是默认按钮
 8nAnswer = MessageBox(eMessageText, nDialogType, eMessageTitle)
 9
10DO CASE
11    CASE nAnswer = 6
12        WAIT WINDOW '您选择了是'
13    CASE nAnswer = 7
14        WAIT WINDOW '您选择了否'
15ENDCASE
参见