0

我想在表单上使用鼠标的坐标并计算光标与其他点之间的距离。

但我发现的代码只给你整个屏幕上的坐标..而不是表格上的坐标。我还发现您可以在屏幕坐标和表单坐标之间进行转换,但我该怎么做呢?

我还没有找到真正有效的例子

顺便说一句,函数ScreenToClient说未定义的符号 hWnd...

4

1 回答 1

1

如果您调用 Win32 APIScreenToClient()函数,您必须为其提供一个HWND,例如:

POINT Pt = Mouse->CursorPos;
Pt = ::ScreenToClient(this->Handle, &Pt);

但是,VCL UI 控件也有自己的ScreenToClient()继承自 的方法TWinControl,例如:

TPoint Pt = this->ScreenToClient(Mouse->CursorPos);
于 2013-05-30T07:59:00.567 回答