如何解决为什么 GetWindowRect() 会为托盘项目弹出窗口获取奇怪的坐标?
MSDN 说 GetwindowRect()
返回窗口的屏幕坐标。 This question 解释了对话框如何首先显示在屏幕左上角,然后定位到其他位置,直到它正确定位 GetwindowRect()
将返回 (0,0)..(width,height)。
这是我看到的。有一个控制台程序运行一个无限循环,每次迭代调用 GetForegroundWindow()
,然后为获得的窗口调用 GetwindowRect()
。对于大多数获得的窗口坐标来说,看起来很真实。
但是,如果我运行 Task Manager
,它会添加一个托盘图标(靠近系统时钟),如果我右键单击该图标,我会看到一个带有 Close
和 Always on top
项目的弹出窗口。当该弹出窗口处于活动状态时,GetForegroundWindow()
将重复返回一个带有 TrayiconMessageWindow
窗口类的窗口,这是有道理的。但是,当调用该窗口的 GetwindowRect()
时,它会成功并获得一个 rect,其中 left
和 top
设置为零,right
和 bottom
设置为生成了相当小的矩形。
弹出窗口显示在右下角附近的某个地方,所以我希望有一个像 (1000,1000)..(1100,1050) 这样的矩形,但我实际上得到了 (0,0)..(100,50) 矩形。
我做错了什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。