2009-02-14 97 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

相關問題