首页 新闻 会员 周边

PostMessage参数涵义

0
悬赏园豆:20 [已解决问题] 解决于 2011-01-12 14:08

PostMessage(hwnd, MouseAPI.DoubleClick, (IntPtr)MouseAPI.LButton, (IntPtr)(point.X | (point.Y << 16)));中最后1个参数是鼠标位置,不但为啥这么写。。还有这么写的:(yy * 65536 + xx)。小弟只是不明白,这么为什么要这么存。原理是啥?谢谢各位大哥

问题补充: 貌似这是或操作吧。。。我想知道原理,为什么要移动16位?而且还要跟x坐标做或操作。
dahaiwuliang的主页 dahaiwuliang | 初学一级 | 园豆:175
提问于:2011-01-12 11:32
< >
分享
最佳答案
0

查看Win32Api, point.Y << 16这个是移位操作(即yy×2的16次方),下面的point.X | (point.Y << 16),鼠标的xy坐标值做与操作,所以两个是一样的。

鼠标的坐标是以屏幕的像素点来计算的,从左上角分别为(x0,y0)。

大概是这样吧,具体的关于屏幕的像素这个东西还真没研究过。

收获园豆:20
massinger | 小虾三级 |园豆:706 | 2011-01-12 13:43
我知道了,原来高16位存放y轴坐标,低15位存放x轴坐标,懂了。谢谢!
dahaiwuliang | 园豆:175 (初学一级) | 2011-01-12 14:09
sorry,搞错了,是或操作。
massinger | 园豆:706 (小虾三级) | 2011-01-12 14:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册