VB语法问题(菜鸟级,谢谢)
1.冒号和等号一起用是什么意思?比如:“wordp.Quit savechanges:=True”
2.下面这一句是什么意思?“lstyle = lstyle And Not WS_SYSMENU”
and not 放在一起,怎么解释?
问题点数:20、回复次数:17Top
1 楼tg123(T.G.)回复于 2002-02-04 22:22:24 得分 0
not 0=-1(非0)
仅not -1=0其余都非0
1 and (not 0) = 1 and -1 =1Top
2 楼fling_boy(昨日重现)回复于 2002-02-04 22:24:49 得分 1
在VB中没有:=,VC中有。
and ,not 是逻辑运算符,还有 or 等。
优先级是not ,and ,or .从大到小。
and not
就是先对ws_sysmenu求反,然后与lstyle与运算。Top
3 楼hwq26(就这样吧)回复于 2002-02-04 22:25:10 得分 1
我也是菜鸟级,所以我告诉你了^_^
1.“:=”是赋值
2. “=“是判断左右是否相等,lstyle 和 WS_SYSMENU 都是布尔型或"0"或"1"
高手见笑了:)Top
4 楼wskshun(寻梦)回复于 2002-02-04 22:26:07 得分 0
tg123,能不能再说清楚一点,我还不太明白。"and not ws_sysmenu"是另一个条件吗?能不能把前面的也连起来讲一讲.Top
5 楼wskshun(寻梦)回复于 2002-02-04 22:29:14 得分 0
lstyle为382664704(长整型),ws_sysmenu=&H80000Top
6 楼tg123(T.G.)回复于 2002-02-04 22:30:13 得分 2
A and not B
可以看成A and (not B)
~~~~~~~先算
not B得到一个值
设not B=C
即
A and C
not B可以直接运算的结果Top
7 楼wskshun(寻梦)回复于 2002-02-04 22:31:12 得分 0
to:fling_boy(男孩)
1.先对ws_sysmenu求反,ws_sysmenu为常量=&H80000,那求反后是什么呢?
2.然后与lstyle与运算,进行怎样的运算呢?Top
8 楼tg123(T.G.)回复于 2002-02-04 22:31:24 得分 0
逻辑运算只有两种结果
0(false) 非0(true)Top
9 楼fangboy(猛将兄)回复于 2002-02-04 22:35:48 得分 9
":="符号是直接用来给指定参数赋值的,比如TreeView中Node的Add方法:
Set nodX = TreeView1.Nodes.Add(, , "r", "Root")
也可以这么写:
Set nodX = TreeView1.Nodes.Add(key:="r", text:="Root")
Top
10 楼fangboy(猛将兄)回复于 2002-02-04 22:44:49 得分 4
"lStyle = lStyle And Not WS_SYSMENU" 这种写法肯定是出现在GetWindowLong到lStyle,然后再SetWindowLong的结构中。lStyle得到的是窗体的Style,这是一个长整型变量,每一位都代表一种Style,比如这个WS_SYSMENU,就是指定窗体是否有系统菜单(就是右键单击标题栏出现的菜单)。上面那句代码是想把这个系统菜单关闭,所需要把lStyle中对应这个Style的位置0(WS_SYSMENU=&H8000,也就是lStyle的最高位),所以用And Not WS_SYSMENU,首先Not WS_SYSMENU=&H7FFF,再和lStyle做一个And运算,结果就是把lStyle的最高位置0了。
Top
11 楼wskshun(寻梦)回复于 2002-02-04 22:46:38 得分 0
好像每次都是算减法:
a = 32 and not 1 'a = 31
a = 31 and not 2 'a = 29
a = 29 and not 3 'a = 26
Top
12 楼scarlet(清风淡月)回复于 2002-02-04 22:51:43 得分 1
你这个语法是在VBA中用的吧,那里可以这样使用,实际上在于给参数赋值Top
13 楼wskshun(寻梦)回复于 2002-02-04 23:02:24 得分 0
to: fangboy(猛将兄)
的确是用API中GetWindowLong中用到,不过“所需要把lStyle中对应这个Style的位置0(WS_SYSMENU=&H8000,也就是lStyle的最高位),所以用And Not WS_SYSMENU,首先Not WS_SYSMENU=&H7FFF,再和lStyle做一个And运算,结果就是把lStyle的最高位置0了”这一句我还是不太明白。可否再讲一下。什么是“lstyle中对应这个style的位置0”
恕小弟太菜Top
14 楼woookaooo(如果是上天安排的话,我也没有办法。)回复于 2002-02-04 23:02:43 得分 0
学习Top
15 楼fangboy(猛将兄)回复于 2002-02-04 23:12:19 得分 1
lStyle中每一位都具体的代表某种Style,假设最高位就是代表WS_SYSMENU这个Style,再下去一位呢代表WS_MAXIMIZE,再下一位代表WS_MAXIMIZE...(以上只是假设)。
Top
16 楼wskshun(寻梦)回复于 2002-02-04 23:20:43 得分 0
那它的意思就是把这些style都去掉了?Top
17 楼shawls(VB Fan)(QQ:9181729)回复于 2002-02-04 23:22:18 得分 1
:=我还真不知道
不过在delphi中间是赋值
Top




