在“最小化”窗口到托盘之后,我无法恢复窗口,在wndproc中这样做:
case WM_SIZE: if (wparam==SIZE_MINIMIZED) { ShowWindow(hwnd,SW_HIDE); } break;
托盘消息处理程序如下所示:
case TRAY_ICON_MESSAGE: switch(lparam) { case WM_LBUTTONDOWN: ShowWindow(hwnd, SW_RESTORE); BringWindowToTop(hwnd); SetFocus(hwnd); break; // ...
该窗口重新出现,但始终隐藏在其他窗口下面,不会到达顶部。 SetFocus()和BringWindowToTop()都不起作用。
你能看看功能是否返回任何错误?
你也可以看看SetForegroundWindow
if (::IsIconic(hwnd)) ShowWindow(hwnd, SW_RESTORE); ::SetForegroundWindow(hwnd); ::BringWindowToTop(hwnd);
切勿使用SetForeground。
看到Msdn的评论。