Win32:返回一个最小化和隐藏的窗口

在“最小化”窗口到托盘之后,我无法恢复窗口,在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的评论。