首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

关于WM_RBOTTONDOWN跟POINT结构的区别

2013-12-29 
关于WM_RBOTTONDOWN和POINT结构的区别A:mov eax,DWORD ptr lParam+2mov @stPoint.y,eaxmov eax,lParammovz

关于WM_RBOTTONDOWN和POINT结构的区别
A:
mov eax,DWORD ptr lParam+2
mov @stPoint.y,eax
mov eax,lParam
movzxeax,ax
mov@stPoint.x,eax

B:
invoke GetCursorPos,addr @stPoint

请问上面A,B两段代码有什么区别,实测A代码达不到预期效果,B可以。
[解决办法]
首先,mov  eax,DWORD ptr lParam+2 是不对的,应该和下面的一样用 movzx 指令;其次,A 的代码亦即 WM_RBUTTONDOWN 消息的 lParam 里的坐标,是相对于相应窗口用户区的左上角的,而 GetCursorPos()函数返回的是相对于屏幕的,两者基准点不一样。

热点排行