vb 中const用法

为什么可以这样用Const SPIF_UPDATEINIFILE = &H1??SPIF_UPDATEINIFILE本身不就是vb的一个常数吗(api函数 SystemParametersInfo的参数fuWinIni的一个可取常量),怎么还可以给他赋值呢??这个貌似跟const pi =3.14159不同啊,求高人指点啊。。。。

第1个回答  2011-04-22
Const SPIF_UPDATEINIFILE = &H1

const pi =3.14159
是一样的。
SPIF_UPDATEINIFILE是api中的常量,但她并不是VB的常量。所以在vb中还要定义。(api函数不是vb的一部分)追问

给它赋值&H1肯定为了达到某种目的,那我如何知道要给这个不是vb常量的常量赋值&H1呢?高手能否给说一下哪里去查阅吗,谢谢。。。。

追答

const pi =3.14159
是定义一个常量pi,用它代表3.14159。
Const SPIF_UPDATEINIFILE = &H1
是定义一个常量SPIF_UPDATEINIFILE ,用它代表&H1。
二者没有什么不同。
两个都是定义常量,不是赋值。SPIF_UPDATEINIFILE 代表的就是&H1,是个常量。凡是写成SPIF_UPDATEINIFILE 的地方,写成&H1也可以,只是不方便阅读而已。

追问

我是说为啥就让 SPIF_UPDATEINIFILE = &H1不等于其他值呢,多谢。。。。

追答

这是由api函数规定的。api实际是Windows的一部分。

本回答被提问者采纳
第2个回答  2011-04-22
怎么不一样,都是定义常量的方法;
API函数中传参中有的是一些固定的值,而定义为SPIF_UPDATEINIFILE 是为了更加的清晰和规范!
调用API过程和常量的定义
函数:Declare Function SystemParametersInfo Lib "user32"
Alias "SystemParametersInfoA" (ByVal uAction As Long,
ByVal uParam As Long, ByVal lpvParam As Any, ByVal
fuWinIni As Long) As Long
fuWinIni 的值:
SPIF_UPDATEINIFILE(值为1)
Or SPIF_SENDWININICHANGE(值为2)
SPIF_UPDATEINIFILE 和 SPIF_SENDWININICHANGE 这两个值在VB中还是需要定义的!API中变量和VB中式不冲突的!
Const SPIF_UPDATEINIFILE =&H1
Const SPIF_SENDWININICHANGE=&H2
调用:SystemParametersInfo SPI_SETSCREENSAVEACTIVE,True,
0&, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)
第3个回答  2011-04-23
是常量的意思,而VB中的常量还有以下几种:

1)直接常量

指在程序中直接给出值的数据,如:123、123&、123.45、1.234E2 、123D3分别表示整型、长整型、单精度浮点型(小数形式)、单精度浮点型(指数形式)、双精度浮点型。

八进制常数: 在数值前加&O ,如 &O123

十六进制常数:在数值前加&H ,如&H123

2)用户声明的符号常量

用Const来声明: Const 符号常量名 [As 类型] = 表达式
如:Const PI=3.14159 '声明了常量PI,代表3.14159,单精度型
Const MAX As Integer=&O144 ''声明了常量MAX,代表八进制数144,整型
Const COUNT#=45.67 '声明了常量COUNT,代表45.67,双精度型

3)系统提供的常量

系统定义的常量位于对象库中,在对象浏览器中的Visual Basic(VB)和Visual Basic for Aplication(VBA)等对象库中列出了VB的常量。这些常量可以与应用程序的对象、方法、属性一起使用。

如:Form1.WindowsState=vbMaximized 表示将窗口极大化。
第4个回答  2020-12-30

CONST:一个C语言的关键字