我想在表单上使用鼠标的位置并使用光标与其他点之间的距离。
但我发现的代码只给你整个屏幕上的坐标..witch 不起作用,因为它与表单无关..我还发现你可以在屏幕坐标和坐标之间进行转换的形式,但我该怎么做?
我还没有找到真正有效的例子
顺便说一句,函数 ScreenToClient 说未定义的符号 hWnd...
我想在表单上使用鼠标的位置并使用光标与其他点之间的距离。
但我发现的代码只给你整个屏幕上的坐标..witch 不起作用,因为它与表单无关..我还发现你可以在屏幕坐标和坐标之间进行转换的形式,但我该怎么做?
我还没有找到真正有效的例子
顺便说一句,函数 ScreenToClient 说未定义的符号 hWnd...
您可以为此使用 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));
是的,您可以使用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
相对于表单的位置。