【问题标题】:how to get mouse coordinates in a form builder 6如何在表单生成器中获取鼠标坐标 6
【发布时间】:2013-05-30 05:01:26
【问题描述】:

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

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

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

顺便说一下函数ScreenToClient说的是未定义符号hWnd...

【问题讨论】:

    标签: c++builder


    【解决方案1】:

    如果调用 Win32 API ScreenToClient() 函数,则必须为其提供HWND,例如:

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

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

    TPoint Pt = this->ScreenToClient(Mouse->CursorPos);
    

    【讨论】:

    • Pt := Mouse.CursorPos; Pt := Windows.ScreenToClient(Handle, Pt);给了我这个错误 E2070: unvalid use of namespace ´Windows´
    • 您是否将Windows 添加到您的uses 子句中?
    • 我的错,我没有注意到你在使用 C++。我给了你一个德尔福解决方案。我更新了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    • 2013-12-26
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多