1

这可能是一个非常基本的问题,但我一直在寻找并且找不到解释。我正在使用 VBA 中对话框的 API 函数,我想为此处定义的窗口样式声明常量,以便我可以尝试使用 CreateDialog API 函数:http: //msdn.microsoft.com/en-us/库/windows/desktop/ms632600(v=vs.85).aspx

通常我看到 VBA 中的 windows 常量被定义为具有类似&H000或类似值的长类型。但是,我找不到&H000这些常量的格式值,我只能找到0x00000000格式值。

例如,请参阅此处的 OpenFileName 文档的 OpenFileName 文档并向下滚动到标志。常量表达式与格式中的值一起列出0x00000000。但是,如果我们查看此处的 CommonDialog 常量,我们可以看到相同的常量及其值以格式列出&H000

所以我想我至少有三个问题:
0x0000000 值代表什么?
&H000 值代表什么?
他们是他们之间转换的一种方式吗?

因为我尝试声明Public Const WS_BORDER as Long=0x00800000L并且在“x”之后得到一个语法区域,表示预期的语句结束。

4

1 回答 1

1

这里解释了 C++的0x...L格式(我相信在其他几种语言中也是一样的)。表示该数字是十六进制的,表示它应该被编译器解释为. 0xLLong

等效的 VBA 语法是&H...&Where&H表示十六进制和&表示Long.

例如,您的陈述:

Public Const WS_BORDER as Long = 0x00800000L

应该:

Public Const WS_BORDER as Long = &H00800000&
于 2014-11-07T21:40:50.643 回答