2 baidu 33805342 baidu_33805342 于 2016.01.20 21:47 提问

请帮忙解释下下列函数的作用。谢谢
c#

输入的参数是鼠标的X,Y坐标,请问转换后是什么?

private static int MAKEPARAM(int l, int h)
    {
        return ((l & 0xffff) | (h << 0x10));
    }

2个回答

caozhy
caozhy   Ds   Rxr 2016.01.20 22:08
已采纳

其实这代码就是把l的最低16位和h的最高16位放在一起。

caozhy
caozhy   Ds   Rxr 2016.01.20 22:09

private static int MAKEPARAM(int l, int h)
{
return h * 65536 + l % 65536;
}
这样写明白了吧

baidu_33805342
baidu_33805342 lParam The low-order word specifies the x-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area. The high-order word specifies the y-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area.
接近 2 年之前 回复
baidu_33805342
baidu_33805342 我看到MSDN有对IParam的解释,希望对后来者有所帮助:
接近 2 年之前 回复
baidu_33805342
baidu_33805342 我看到MSDN有对IParam的解释,希望对后来者有所帮助:
接近 2 年之前 回复
baidu_33805342
baidu_33805342 非常感谢,我已经理解了。再次感谢
接近 2 年之前 回复
caozhy
caozhy 回复baidu_33805342: 因为消息只有2个参数,这个是windows约定好的,而坐标65536就够了(4K显示器也只用到3000多)。所以把两个参数合并在一个里面传。
接近 2 年之前 回复
baidu_33805342
baidu_33805342 非常感谢您的回答。 在WINAPI中我看到wParam:指定附加的消息特定的信息。 IParam:指定附加的消息特定的信息。 然而这个“指定附加的消息特定的信息”为什么要把X,Y放一起呢?。 PostMessage(hwnd, 0x0200, 0, MAKEPARAM(x, y));
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!