Win32: Retornando uma janela minimizada e escondido para o início
-
23-08-2019 - |
Pergunta
Eu sou incapaz de restaurar uma janela depois de "minimizar" uma janela para a bandeja, fazendo isso em wndproc:
case WM_SIZE:
if (wparam==SIZE_MINIMIZED) {
ShowWindow(hwnd,SW_HIDE);
}
break;
A mensagem de bandeja manipulador esta aparência:
case TRAY_ICON_MESSAGE:
switch(lparam) {
case WM_LBUTTONDOWN:
ShowWindow(hwnd, SW_RESTORE);
BringWindowToTop(hwnd);
SetFocus(hwnd);
break;
// ...
A janela não re-aparecer, mas está sempre escondida sob outras janelas e não vem para o topo. Nem SetFocus () nem BringWindowToTop () parece ter qualquer efeito.
Solução
Você poderia ter um olhar se as funções devolver quaisquer erros?
Você também pode ter um olhar para SetForegroundWindow
Outras dicas
if (::IsIconic(hwnd))
ShowWindow(hwnd, SW_RESTORE);
::SetForegroundWindow(hwnd);
::BringWindowToTop(hwnd);
Nunca uso SetForeground.
observações consulte MSDN.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow