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.

Foi útil?

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
scroll top