windows - 如何判断窗口是否有焦点? (Win32 API)

标签 windows winapi hwnd

使用 Win32 API(在 C 中,但这无关紧要),我如何判断给定窗口(由 HWND 标识)是否具有焦点?

我正在 Hook 一个应用程序来监视一个事件,当该事件发生时,我想检查该应用程序是否已经获得焦点。如果没有,我想闪烁窗口,直到他们聚焦它。

或者,如果窗口已经有焦点,FlashWindowEx 结构标志 FLASHW_TIMERNOFG 是否会闪烁直到窗口有焦点才不闪烁?

我现在无法测试它,因为我不在我的开发环境中,但我的印象是它无论如何都会闪烁,这是我试图避免的。

此外,如果重要的话,应用程序会在此窗口中使用 DirectX。

最佳答案

GetActiveWindow将返回与输入焦点关联的顶层 窗口。 GetFocus将返回具有输入焦点的窗口的句柄。

这篇文章可能对您有所帮助:
http://www.microsoft.com/msj/0397/Win32/Win320397.aspx

关于windows - 如何判断窗口是否有焦点? (Win32 API),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/466354/

相关文章:

windows - 在VBScript中仅使用FileSystemObject,如何确定操作系统的处理器体系结构?

windows - golang无法枚举注册表项的子项

ruby-on-rails - ‘ bash ’: no such file or directory

c++ - 获取文件版本信息失败——但对我来说不是

c++ - Richedit Msftedit奇怪的边框

c++-cli - 如何在C++/CLI代码中引入HWND?

c++ - 父级的 HWND 无效

windows - 谁能解释为什么 "git status"在 linux 上的共享下运行时显示文件已修改?

vba - 如何使用 VBA 在 Mac OS X 上读取/写入内存?

c - 位图反转颜色