Delphi 中使用mouse_event 问题,BS答非所问,不懂装懂滴

在没有指定MOUSEEVENTF_ABSOLUTE情况下,指定了MOUSEEVENTF_MOVE,如何移动Cursor后再复位,不想用绝对坐标。
我测试过的情况是:dx,dy 正值可以,如果直接给形参赋负值过不了compile,这个参数在VC中是DWORD.如果通过实参赋值返回位置又有误差。
希望有经验的朋友帮解答一下,十分感谢!!

负数需要强制类型转换到无符号数,类似于Cardinal( -1 )的写法,或者Cardinal( n ),当n是Integer类型时。追问

强制类型转换与通过用实参调用的效果是一样的,返回位置还是有误差。
难道说在delphi中只能用绝对值了吗?

追答

不用ABSOLUTE,确实有偏差,几乎每次都有1或2像素的偏差,dx、dy为正数也有偏差,还是用ABSOLUTE吧,这个模式的坐标系精度比较高(0~65535),比像素精确多了,也就是增加一点儿复杂度而已,调用API——ClientToVirtual来转换坐标。

追问

是的,我用公式转的每次有一个象素的偏差,估计是取整时舍去小数的问题。
谢谢了!

温馨提示:答案为网友推荐,仅供参考
相似回答