Вин32:Возвращение свернутого и скрытого окна наверх
-
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.
Не связан с StackOverflow