【发布时间】:2010-12-20 18:05:48
【问题描述】:
这是我的问题。希望我能解释得足够好。我的桌面是 2x2,显示器尺寸为 (2048,1152)。
我正在尝试使用辅助设备来生成鼠标点击。我的鼠标点击应该在坐标 (1600,1407) 上(在“平移按钮”上),假设 (0,0) 是我整个桌面区域的左上角。它将鼠标移动到正确的位置,但是当我执行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
因此,它仍然没有将点(我可以看到它悬停在弹出窗口上)放在矩形中。
为什么我的弹出窗口的矩形和点甚至不一样?我怎样才能让它们在同一个坐标“空间”中?
谢谢,
【问题讨论】:
标签: macos mouse desktop coordinates multiple-monitors