你可以在VBScript MsgBox中的按钮之间“混合搭配”吗?

时间:2015-11-22 15:31:04

标签: windows vba vbscript

我正在学习使用VBScript进行编码,当一个想法让我感到惊讶时,我正在制作一个消息框:我可以“混合和匹配”MsgBox中的按钮,而不是vbYesNo,你有vbYesCancelRetry还是什么?

1 个答案:

答案 0 :(得分:3)

  

我可以混合搭配吗? MsgBox中的按钮,而不是vbYesNo,你可以拥有vbYesCancelRetry或其他东西吗?

只需简单地尝试即可轻松回答(提示:答案为否)。

MsgBox期望的值是predefined constants

Constant            Value    Binary
vbOKOnly            0        0000
vbOKCancel          1        0001
vbAbortRetryIgnore  2        0010
vbYesNoCancel       3        0011
vbYesNo             4        0100
vbRetryCancel       5        0101

由于数字不是两个(*)的所有严格幂,因此它们的二进制表示重叠。例如:vbAbortRetryIgnorevbYesNoCancel共享一点,但绘制完全不同的按钮。

其含义是:您无法打开或关闭各个按钮,按钮只有预定义的设置。常量用于选择其中一组。

(*)如果是的话,他们每个人都会找到一个单独的位,导致这样的模式:

ButtonA    0    0000
ButtonB    1    0001
ButtonC    2    0010
ButtonD    4    0100
ButtonE    8    1000

在这种情况下你可以混合搭配。唉,这不是Windows MessageBox API function的实现方式。 VBScript的MsgBox()只是该系统函数调用的一个薄包装。