我的应用程序可以接收来自另一个应用程序的消息。如果应用程序被最小化,我想将其恢复到之前的状态而不将焦点放在它上。
我正在打电话
::ShowWindow(hWnd, SW_SHOWNOACTIVATE);
如果使用标题栏中的“最小化”按钮最小化应用程序,它会很好地工作,但如果通过单击 Windows 任务栏中的按钮最小化应用程序,则应用程序将获得焦点。
这可以修复或变通吗?
最佳答案
您可以在 ShowWindow
函数调用之前执行以下操作 HWND hwndForegroundWindow = GetForegroundWindow()
。之后您可以使用 SetForegroundWindow(hwndForegroundWindow)
恢复前景窗口。这取决于你对焦点的含义,前景窗口和焦点是不同的(对于元素焦点,使用 GetFocus
和 SetFocus
)。
关于c++ - 如果通过单击任务栏按钮最小化程序,SW_SHOWNOACTIVATE 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32013035/