gpt4 book ai didi

c# - 如何在 C# 中读取 Win32 WM_MOVE lParam x,y 坐标?

转载 作者:行者123 更新时间:2023-12-02 03:38:57 25 4
gpt4 key购买 nike

我正在尝试从 WM_MOVE win32 消息中读取 lParam x 和 y 坐标并获取奇怪的值。我需要以某种方式从 lParam IntPtr 中提取它们。

https://msdn.microsoft.com/en-us/library/windows/desktop/ms632631(v=vs.85).aspx

谢谢

最佳答案

除了 Simon Mourier 已经发布的内容(涵盖了许多标准宏)之外,此方法还返回一个 Point()。来自message.LParam .

MSDN suggests to use the GET_X_LPARAM and GET_Y_LPARAM macros(defined in WindowsX.h) to extract the coordinates, warning againstthe possible wrong results returned by the LOWORD and HIWORDmacros (defined in WinDef.h), because those return unsignedintegers.

这些是建议宏的定义:

#define GET_X_LPARAM(lp)    ((int)(short)LOWORD(lp))
#define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp))

重要的是这些值必须有符号,因为辅助监视器返回负值作为坐标。

public static Point PointFromLParam(IntPtr lParam)
{
return new Point((int)(lParam) & 0xFFFF, ((int)(lParam) >> 16) & 0xFFFF);
}

关于c# - 如何在 C# 中读取 Win32 WM_MOVE lParam x,y 坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49288552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com