一个给定的外部(未由当前进程所拥有的)窗口(hWnd
)首先最小化,那么隐藏的:ShowWindowAsync不激活一个隐藏+最小化窗口?
ShowWindowAsync(hWnd, SW_MINIMIZE);
// wait loop inserted here
ShowWindowAsync(hWnd, SW_HIDE);
以下调用正确它恢复到未最小化(恢复)状态:
ShowWindow(hWnd, SW_RESTORE);
然而,这个电话没有:
ShowWindowAsync(hWnd, SW_RESTORE);
在第二种情况下与ShowWindowAsync()
中,窗口未被最小化并且不再隐藏,但未被激活(保留在其他现有窗口之后)。相反,第一个ShowWindow()
调用会正确激活该窗口。
这是预期的行为? 如何在不依赖ShowWindow()
(同步(阻塞))的情况下恢复窗口(到前台)?(该示例中的等待循环可具有超时,而ShowWindow()
不允许超时的规范。)
(操作系统SP3)
呼叫的ShowWindow()+ SetForegroundWindow()。 –
@HansPassant:这是一个阻塞(同步)调用,我试图避免。 – Unsigned