当模态子项存在时,SetForegroundWindow出现问题

时间:2009-07-02 12:05:40

标签: .net windows winapi

我正在使用Win32 API调用SetForegroundWindow将焦点设置到另一个应用程序的窗口。然后我使用SendKeys向该窗口发送击键。

除了打开模态窗口(例如“文件打开”对话框)之外,它的效果很好。在这种情况下,我想将该模态子窗口设置为前景窗口。

使用我的主应用程序的hWnd,如何将任何模态子窗口设置为活动窗口? (请注意,可能有一个模态子项本身有另一个模态子项打开,所以理想情况下我希望在这种情况下也可以工作。)

我在C#,.NET 3.5中对此进行编码。

2 个答案:

答案 0 :(得分:2)

请参阅GetLastActivePopup API。

答案 1 :(得分:1)

GetTopWindow将为您提供给定HWND的最高Z顺序,这将是一个存在的最后一个模态对话框。

GetLastActivePopup也可以。