【发布时间】:2016-09-06 20:58:44
【问题描述】:
情况:我正在尝试在 Windows 函数中使用 GetForeground() 来获取当前的前台窗口。
问题:但是,在发送 LEFT MOUSE UP 之前,操作系统上的前景窗口不会更新,但我需要在 LEFT MOUSE DOWN 上获取它。我会假设它是新的前景窗口,因为当我按下鼠标时它被选中并且我可以移动窗口但事实并非如此。我似乎无法在 Windows 函数中找到任何其他可用于获取当前活动窗口的方法。我试过 GetActiveWindow() 但句柄总是 0。
【问题讨论】:
-
您真正想解决什么问题?也许调用
GetForegroundWindow是完全错误的解决方案。 -
我想获得我正在使用的窗口的句柄。例如,我将鼠标左键放在 Windows 上的文件资源管理器(标题栏)上,该窗口现在已被选中,我可以移动它。但是我无法获得它的句柄 ID。我会假设当我鼠标左键窗口将它设置为新的前景窗口,所以通过调用 GetForeground() 我会得到句柄。但我没有。
-
您只是重复了您的问题,但没有回答您最终要完成的工作。为什么你认为你需要知道鼠标左键按下事件的前景窗口?你打算如何处理这些信息?
-
哦,对不起,我以为我在第一篇文章中并不清楚。基本上我想获得有关其位置的信息。我可以通过使用 GetWindowRect,我只是错过了 hWnd
-
@MichaelChiLam 根据您对我的回答的回复,您似乎想要做的(这是 IInspectable 所要求的)是从屏幕坐标中检索窗口。请注意,它与活动/前景窗口没有直接关系。见What is the XY problem?