Вин32:Возвращение свернутого и скрытого окна наверх

StackOverflow https://stackoverflow.com/questions/549659

  •  23-08-2019
  •  | 
  •  

Вопрос

Я не могу восстановить окно после «свертывания» окна в трей, выполнив это в 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() не имеют никакого эффекта.

Это было полезно?

Решение

Не могли бы вы посмотреть, возвращают ли функции какие-либо ошибки?

Вы также можете посмотреть УстановитьПередний ПланОкно

Другие советы

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

::SetForegroundWindow(hwnd);  
::BringWindowToTop(hwnd);

Никогда не используйте SetForeground.

См. замечания Msdn.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top