注册 登录
编程论坛 汇编论坛

[求助]Win32汇编 有关鼠标左键按下的消息的处理

彭现陈 发布于 2007-07-24 12:56, 1168 次点击
这是我的鼠标左键按下消息处理分支(运行是正确的)
WM_LBUTTONDOWN消息传递的参数 lParam 低位存放鼠标的x坐标,高位存放y坐标

.ELSEIF uMsg==WM_LBUTTONDOWN
mov eax,lParam
and eax,0FFFFh;;;;;;;;问:问什么要把整个lParam作为鼠标的x坐标,我觉得应该用and eax,0FFH
mov hitpoint.x,eax
mov eax,lParam
shr eax,16;;;;;;;;;;;这里却是把高位作为y坐标处理的,怎么回事啊???
mov hitpoint.y,eax
mov MouseClick,TRUE
invoke InvalidateRect,hWnd,NULL,TRUE


那位高手能不能详细解释下鼠标消息传递的参数的原理??
谢啦。
4 回复
#2
无理取闹2007-07-24 17:15

1。lParam 为32位的 and eax,0FFFFh就是为了让他的低16位给x,高16位置0
如果and eax,0FFh不就是8位了么
2。你后面那句 本来就是把高位作为y坐标的

#3
无理取闹2007-07-24 17:15
一个f等于4个1
#4
彭现陈2007-07-24 17:41
回复:(无理取闹)1。lParam 为32位的 and eax,0FFFF...
对的。16位的编多了。忘了是32位了。
谢了
#5
无理取闹2007-07-24 17:50
客气 共同学习 共同进步
1