Janela visibilidade

Uma janela pode estar visível ou oculto. O sistema exibe uma janela visível na tela. Ele esconde uma janela oculto por não puxando-o. Se uma janela estiver visível, o usuário pode fornecer entrada para a janela e exibir saída da janela. Se uma janela estiver oculto, ele é efetivamente desativado. Uma janela oculto pode Processoar mensagens de sistema ou de outras janelas, mas não pode processar a entrada do usuário ou exibir a saída. Um aplicativo define o estado de visibilidade da janela ao criar a janela. Mais tarde, o aplicativo pode alterar o estado de visibilidade.

Uma janela é visível quando o estilo WS_VISIBLE for definido para a janela. Por padrão, o CreateWindowEx função cria uma janela oculta a menos que o aplicativo especifica o estilo WS_VISIBLE. Normalmente, um aplicativo define o estilo WS_VISIBLE após ele ter criado uma janela para manter os detalhes do processo de criação ocultada do usuário. Por exemplo, um aplicativo pode manter uma nova janela escondida enquanto ele personaliza a aparência da janela. Se o estilo WS_VISIBLE for especificado na CreateWindowEx, o sistema envia a mensagem WM_SHOWWINDOW para a janela depois de criar a janela, mas antes de exibi-lo.

Um aplicativo pode determinar se uma janela está visível usando a IsWindowVisible função. Um aplicativo pode mostrar (tornar visível) ou ocultar uma janela usando a função ShowWindow, SetWindowPos, DeferWindowPosou SetWindowPlacement . Essas funções mostram ou ocultar uma janela por configuração ou remover o estilo WS_VISIBLE para a janela. Eles também enviarem a mensagem WM_SHOWWINDOW para a janela antes mostrando ou ocultando-lo.

Quando uma janela do proprietário é minimizada, o sistema automaticamente oculta o associado proprietário janelas. Da mesma forma, quando uma janela do proprietário é restaurada, o sistema mostra automaticamente o associado proprietário janelas. Em ambos os casos, o sistema envia a mensagem WM_SHOWWINDOW para as propriedade windows antes ocultando ou mostrando-lhes. Ocasionalmente, um aplicativo pode precisar ocultar as propriedade windows sem a necessidade de minimizar ou ocultar do proprietário. Neste caso, o aplicativo usa a função ShowOwnedPopups . Essa função define ou remove o estilo WS_VISIBLE para todas as janelas de propriedade e envia a mensagem WM_SHOWWINDOW para as propriedade windows antes ocultando ou mostrando-lhes. Ocultar uma janela do proprietário não tem nenhum efeito sobre o estado de visibilidade da propriedade windows.

Quando uma janela pai estiver visível, seus filho associados windows também são visíveis. Da mesma forma, quando a janela pai é oculto, seu filho windows também são ocultados. Minimizando a janela pai não tem nenhum efeito sobre o estado de visibilidade das janelas filho; ou seja, as janelas filho são minimizadas juntamente com o pai, mas o estilo WS_VISIBLE não será alterado.

Mesmo se uma janela tem o estilo WS_VISIBLE, o usuário pode não ser capaz de ver a janela sobre a tela; outras janelas completamente podem sobrepor-lo ou ele pode ter sido movido para além da borda da tela. Além disso, uma janela filho visível é sujeito às regras de recorte estabelecidas pela sua relação pai-filho. Se pai da janela a janela não estiver visível, também não será visível. Se a janela pai move-se para além da borda da tela, a janela filho também se move porque uma janela filho é desenhada relativo ao canto superior esquerdo do pai. Por exemplo, um usuário pode mover a janela pai que contém a janela filho suficientemente longe fora da borda da tela que o usuário pode não ser capaz de ver a janela de filho, mesmo que a janela filho e seus janela pai ambos têm o estilo WS_VISIBLE.