【发布时间】:2010-11-10 07:24:59
【问题描述】:
我正在使用以下代码来获取最顶层窗口的句柄:
HWND hwnd;
hwnd = GetForegroundWindow();
这样做的问题是它返回系统范围内的最顶层。 有什么方法可以仅从我自己的应用程序中获取最高值?
我只想获取我的应用程序的最顶部窗口。这意味着,我需要一个 API 来获取我自己的应用程序的最顶层窗口,而不是像 GetForegroundWindow() 那样的系统范围的最顶层窗口。 谢谢!
编辑:
好的,让我在这里说清楚。我的问题是我能够为不属于我的应用程序的窗口获取 HWND。 我想要得到的只是我的应用程序的TOPMOST。 如果 HWND 属于另一个应用程序,那么我不应该获取信息。
【问题讨论】:
-
我知道这是一个相当老的问题,但我觉得有必要添加对blogs.msdn.com/b/oldnewthing/archive/2008/10/06/8969399.aspx的引用
-
但是,请注意
GetActiveWindow()的“活动”部分。例如,如果用户激活了另一个应用程序,GetActiveWindow()将返回 null。与GetWindow(main_hwnd, GW_ENABLEDPOPUP)和GetGUIThreadInfo(thread_id, &info) -> info.hwndActive相同。
标签: c windows winapi foreground