gpt4 book ai didi

c# - 在 CLR 中 GetCursorPos 之后获取相对位置?

转载 作者:行者123 更新时间:2023-11-30 19:43:40 26 4
gpt4 key购买 nike

到目前为止,我已经成功获取了 x 和 y 坐标。

面板代码内。

   POINT cursorPos;
GetCursorPos(&cursorPos);
int x;
int y;
x = cursorPos.x;
y = cursorPos.y;
cout << x << endl;
cout << y << endl;

但是,我得到的 x 和 y 坐标是全局的,也就是说,不在我想要从中获取坐标的面板内。

我确实知道 ClientToScreen 需要将 x 和 y 坐标更改为其相对位置,但我如何在 C++/CLR 中做到这一点?

因为 ClientToScreen 需要一个句柄,而 C++/CLR 中没有引入该句柄(如果我在这一点上错了,请原谅我)。谢谢:)

更新:我尝试将面板转换为 hwnd,但仍然无法正常工作。

HWND hwnd = static_cast<HWND>(this->panel1->Handle.ToPointer());

最佳答案

您可以获得全局坐标,因为 GetCursorPos() 是相对于屏幕的。要将其转换为应用程序坐标,只需在由 GetCursorPos() 填充的 POINT 结构上使用 ScreenToClient() 即可。

查看此处的文档:https://msdn.microsoft.com/en-us/library/windows/desktop/dd162952%28v=vs.85%29.aspx

关于c# - 在 CLR 中 GetCursorPos 之后获取相对位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29330368/

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