Una finestra può essere visibile o nascosto. Il sistema visualizza una finestra visibile sullo schermo. Nasconde una finestra di nascosto non disegnandola. Se una finestra è visibile, l'utente può fornire input alla finestra e vedere l'output della finestra. Se una finestra è nascosto, in modo efficace è disattivato. Una finestra nascosta in grado di elaborare i messaggi dal sistema o da altre finestre, ma non può elaborare input dall'utente o visualizzare l'output. Un'applicazione imposta stato di visibilità di una finestra durante la creazione della finestra. Più tardi, l'applicazione può modificare lo stato di visibilità.
Una finestra è visibile quando lo stile WS_VISIBLE è impostato per la finestra. Per impostazione predefinita, la funzione CreateWindowEx crea una finestra nascosta a meno che l'applicazione specifica lo stile WS_VISIBLE. In genere, un'applicazione imposta lo stile WS_VISIBLE, dopo che ha creato una finestra per mantenere i dettagli del processo di creazione del nascoste all'utente. Ad esempio, un'applicazione può mantenere una nuova finestra di nascosto mentre Personalizza l'aspetto della finestra. Se è specificato lo stile WS_VISIBLE CreateWindowEx, il sistema invia il messaggio WM_SHOWWINDOW alla finestra dopo la creazione della finestra, ma prima di visualizzarle.
Un'applicazione può determinare se una finestra è visibile utilizzando la funzione IsWindowVisible . Un'applicazione può mostrare (rendere visibile) o nascondere una finestra utilizzando la funzione ShowWindow, SetWindowPos, Error_invalid_dwp_handleo SetWindowPlacement . Queste funzioni mostrano o nascondono una finestra da impostare o rimuovere lo stile WS_VISIBLE per la finestra. Essi inoltre inviare il messaggio WM_SHOWWINDOW alla finestra prima mostrando o nascondendo.
Quando una finestra proprietaria è ridotto al minimo, il sistema automaticamente nasconde l'associato windows di proprietà. Analogamente, quando viene ripristinata una finestra proprietaria, il sistema automaticamente visualizzato l'associato windows di proprietà. In entrambi i casi, il sistema invia il messaggio WM_SHOWWINDOW alle finestre di proprietà prima di nascondere o mostrando loro. In alcuni casi, un'applicazione può essere necessario nascondere le finestre di proprietà senza dover minimizzare o nascondere il proprietario. In questo caso, l'applicazione utilizza la funzione ShowOwnedPopups . Questa funzione imposta o rimuove lo stile WS_VISIBLE per tutte le finestre di proprietà e invia il messaggio di WM_SHOWWINDOW alle finestre di proprietà prima di nascondere o mostrando loro. Nascondere una finestra proprietaria non ha alcun effetto sullo stato di visibilità delle finestre di proprietà.
Quando una finestra padre è visibile, sono visibili anche le sue finestre figlio associato. Analogamente, quando si nasconde la finestra padre, le sue finestre figlio anche sono nascosti. Riducendo al minimo la finestra padre non ha alcun effetto sullo stato di visibilità delle finestre figlio; cioè, le finestre figlio sono ridotti al minimo con il genitore, ma non è cambiato lo stile WS_VISIBLE.
Anche se una finestra è lo stile WS_VISIBLE, l'utente potrebbe non essere in grado di vedere la finestra sullo schermo; altre finestre completamente possono sovrapporsi e o potrebbe essere stata spostata oltre il bordo dello schermo. Inoltre, una finestra figlio visibile è soggetto alle regole ritaglio istituite dalla sua relazione padre-figlio. Se la finestra padre della finestra non è visibile, anche non sarà visibile. Se la finestra padre si sposta oltre il bordo dello schermo, la finestra figlio sposta inoltre perché una finestra figlio viene disegnata rispetto all'angolo superiore sinistro dell'elemento padre. Ad esempio, un utente può spostare la finestra padre che contiene la finestra figlio abbastanza lontano oltre il bordo dello schermo che l'utente non può essere in grado di vedere la finestra del bambino, anche se la finestra del bambino e relativa finestra padre entrambi hanno lo stile WS_VISIBLE.