2009-02-14 107 views
2

我不能“最小化”窗口到托盘后恢复的窗口,在WndProc中这样做:的Win32:返回最小化和隐藏的窗口顶部

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()都没有任何效果。

回答

0
if (::IsIconic(hwnd)) 
    ShowWindow(hwnd, SW_RESTORE); 

::SetForegroundWindow(hwnd); 
::BringWindowToTop(hwnd); 
-1

切勿使用SetForeground。

查看Msdn的评论。

+0

哪些?该文件似乎表明,在某些情况下使用它完全可以 – 2009-02-15 07:07:50

相关问题