这是我的问题。希望我可以解释得很好。我的桌面是一个2x2的显示器(2048,1152)。Mac鼠标坐标!=窗框?
我正在尝试使用辅助设备来生成鼠标点击。假设(0,0)是我整个桌面区域的左上角,我的鼠标点击应该在坐标(1600,1407)-ish(在“平移按钮”上)。它将鼠标移动到正确的位置,但是当我执行CGREctContainsPoint()
时),因此它给了我NO
。
由我的弹出窗口给出的矩形(框架)的起源是(1558,-406)?所以数学是正确的CGREctContainsPoint()
,但窗口的框架应该包含点。 (甚至更多,我可以看到鼠标光标在窗口上。)
为什么?是因为它是一个小孩窗户吗? (我的桌面的中心是在图像的中心,每个窗口是一个不同的背景颜色。)
我已经使用了以下尝试:
NSRect pFrame = [_popupWindow frame];
NSPoint pOrigin = pFrame.origin;
NSPoint correctedOrigin = [[_popupWindow parentWindow] convertBaseToScreen:pOrigin];
pFrame.origin = correctedOrigin;
但是这给了我:
... Rect {{1488, -1529}, {439, 306}}, Point {1556.17, 1314.76}, InRect 0
作为一个结果,它仍然没有放置点(我可以看到悬停在弹出窗口上)的矩形。
为什么我的弹出窗口的矩形和点甚至不是相同的?我怎样才能让他们在同一个坐标“空间”?
谢谢,
你确定它的左下角?如果我创建了'CGEventRef m = CGEventCreateMousEvent()',并且我将它传递给一个坐标,其中y>屏幕高度显示在左下角的屏幕中。 – 2010-12-20 20:20:22
这取决于你使用的是什么系统。 Carbon(你用来获取位置的)使用top作为0,而Cocoa(你用来获取窗口位置)使用bottom作为0.我将编辑我的帖子以显示如何从可可中获得鼠标。 – ughoavgfhw 2010-12-20 20:51:50