【问题标题】:Equivalent of GetCursorPos() in Mac's Carbon等效于 Mac 的 Carbon 中的 GetCursorPos()
【发布时间】:2009-10-13 14:07:08
【问题描述】:

背景 我们正在将基于 PythonOgre 的游戏移植到 Mac,并且发行商要求鼠标能够离开窗口。在 Windows 上,我们围绕 OIS(面向对象的输入系统)进行鼠标控制;也就是说,我们不会让 OIS 将鼠标捕获在窗口边框内,然后使用 GetCursorPos() Win32 API 在屏幕坐标中跟踪鼠标光标。

我们不能轻易地修改 Ogre3d 循环——它至少需要重新构建库,以及重新构建包装器,这很容易在我们的构建机器上花费大约一整个工作日。理论上我们可以修改 OIS,但我们的日程安排很紧,所以出于同样的原因,我们也不想不必要地使用它。

问题 什么是获取屏幕空间鼠标光标坐标的 Carbon API,相当于 Windows API GetCursorPos()

【问题讨论】:

    标签: python macos mouse macos-carbon


    【解决方案1】:

    我相信您正在寻找的是 GetMouse()。您可以在 Apple 的 UIElementInspector sample code 中找到示例。不过,这是在 Obj-C 而不是 Python 中。

    编辑:根据 NSD,HIGetMousePosition() 是首选方法。

    【讨论】:

    • GetMouse() 与 Objective-C 无关,因为它早于它的存在几年。它最初的实现是 Pascal。无论如何,HIGetMousePosition() 将是今天的首选方法。
    • 是的,我的意思是这个例子是 Objective-C。不过,很高兴了解 HIGetMousePosition()。我会更新我的答案。
    • HIGetMousePosition() 是 Leopard 的新手。我们需要 10.4 兼容性,所以我们将使用 GetMouse()。在 Python 中,它位于 Carbon.Evt 模块中,因此正确的调用是:result=Carbon.Evt.GetMouse()。谢谢你们!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 2023-03-03
    • 1970-01-01
    • 2016-07-03
    相关资源
    最近更新 更多