0

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

但我发现的代码只给你整个屏幕上的坐标..witch 不起作用,因为它与表单无关..我还发现你可以在屏幕坐标和坐标之间进行转换的形式,但我该怎么做?

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

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

4

2 回答 2

1

您可以为此使用 ScreenToClient 函数:

TPoint p = Mouse->CursorPos;
Form1->ScreenToClient(p);
ShowMessage("Mouse-Left relative to Form: "+IntToStr((int)p.x));
ShowMessage("Mouse-Top relative to Form: "+IntToStr((int)p.x));
于 2013-07-03T11:32:02.110 回答
0

是的,您可以使用ScreenToClient方法,但方法如下:

TPoint p_rel_scr = Mouse->CursorPos;
TPoint p_rel_frm = Form1->ScreenToClient(p_rel_scr );
int x_position = (int) p_rel_frm.x;
int y_position = (int) p_rel_frm.y;

wherep_rel_scr是相对于屏幕左上角和p_rel_frm相对于表单的位置。

于 2016-06-20T11:48:42.180 回答