VB中XOR是什么意思. 20

Dim hiliteMenu As Long hiliteMenu = HiliteMenuItem(Me.hwnd, hMenu, 0, MF_BYPOSITION Xor MF_HILITE) MsgBox hiliteMenu 我将XOR换成AND的时候不能加亮显示,为什么. AND不是和的意思么?和的意思的话应该两个标志符都可以使用,但是为什么不可以用 XOR... 展开
三楼的说MF_BYPOSITION Xor MF_HILITE中的xor改成and时,只能两种条件都满足的情况下才行,这个条件是什么..
我有更好的答案
邀请更新
2008-02-19 最佳答案
然后对每位进行运算,相同则为零,不同则为1
如:
7 Xor 11
(7)10=(0111)2
(11)10=(1011)2
0 1 1 1
1 0 1 1
-Xor--------
1 1 0 0
(1100)2=12
所以7 Xor 11=12
又如
13 Xor 52

0 0 1 1 0 1
1 1 0 1 0 0
-Xor------------
1 1 1 0 0 1
所以13 Xor 52 = 57(111001的10进制)

替三楼回答:
MF_BYPOSITION Xor MF_HILITE
用Xor是因为VB传参数的机制就是这样的
MF_BYPOSITION是使用菜单项的位置(从序号0开始)来标示菜单项
MF_HILITE好像是加亮显示吧

MF_BYPOSITION = &H400&
MF_BYCOMMAND = &H0&
MF_HILITE = &H80&

这样VB就可以只传输一个参数False Xor False =False
True Xor False =True
False Xor True =True
True Xor True =False
如果是两个数互相Xor的话,先化成2进制

其他回答

or说明:

如果表达式中有一个而且只有一个值为True。倘若在wHilite参数中设置了MF_BYCOMMAND标志,这个参数就用于指定要改变的菜单条目的命令ID,hwnd窗口的顶级菜单的句柄
wIDHiliteItem Long,这个参数就用于指定条目在菜单中的位置(第一个条目的位置为0)
wHilite Long,一系列常数标志的组合。其中包括MF_BYCOMMAND或MF_BYPOSITION,则结果为True。以下数字0代表假(False),1代表真(True), ByVal hMenu As Long, ByVal wIDHiliteItem As Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hwnd Long,欲加亮或撤消加亮的菜单条目的标识符, ByVal wHilite As Long) As Long
说明
控制顶级菜单条目的加亮显示状态
返回值
Long;user32"。如果设置的是MF_BYPOSITION标志; Alias "HiliteMenuItem" (ByVal hwnd As Long,拥有顶级菜单的一个窗口的句柄
hMenu Long,指出要改变的条目。也包括MF_HILITE。最后一位数代表运行结果
0 xor 0= 0
0 xor 1= 1
1 xor 0= 1
1 xor 1= 0

HiliteMenuItem

VB声明
Declare Function HiliteMenuItem Lib "
展开
yzy8000 | 发布于2008-02-18
评论
1 and 0 =0
1 or 0 =1

1 xor 0 =1
1 xor 1=0
0 xor 0 =0
0 xor 1=1

就是相同为0,不同为1
cwa9958 | 发布于2008-02-18
评论

为您推荐:

×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消