Venster zichtbaarheid

Een venster kunnen zichtbaar of verborgen zijn. Het systeem geeft een zichtbaar venster op het scherm. Het verbergt een verborgen venster door niet tekenen. Als een venster weergegeven wordt, kan de gebruiker input naar de venster leveren en weergeven van het venster uitvoer. Als een venster verborgen is, is het effectief uitgeschakeld. Een verborgen venster kan verwerken berichten van het systeem of van andere vensters, maar het niet verwerken van invoer van de gebruiker of uitvoer weergeven. Een toepassing ingesteld van een venster zichtbaarheid staat bij het maken van het venster. Later, kunt de toepassing wijzigen de zichtbaarheid staat.

Een venster is zichtbaar wanneer de WS_VISIBLE stijl is ingesteld voor het venster. Standaard maakt de functie CreateWindowEx een verborgen venster tenzij de toepassing de WS_VISIBLE stijl geeft. Een toepassing wordt meestal, de WS_VISIBLE stijl ingesteld nadat het is gemaakt van een venster om details van het proces van de oprichting van de gebruiker verborgen te houden. Een toepassing kan bijvoorbeeld een nieuw venster verborgen terwijl het uiterlijk van het venster aanpast houden. Als de WS_VISIBLE stijl is opgegeven in CreateWindowEx, verzendt het systeem het bericht WM_SHOWWINDOW naar het venster nadat u het venster hebt gemaakt, maar voordat deze wordt weergegeven.

Een toepassing kan bepalen of een venster met behulp van de functie van de IsWindowVisible zichtbaar is. Een toepassing kan (maak zichtbaar) weergeven of verbergen van een venster met de functie ShowWindow, SetWindowPos, DeferWindowPosof SetWindowPlacement . Deze functies weergeven of verbergen van een venster door instellen en verwijderen van de stijl van de WS_VISIBLE voor het venster. Ze ook signaal WM_SHOWWINDOW naar het venster voor het weergeven of verbergen het.

Wanneer een eigenaar-venster is geminimaliseerd, verbergt het systeem automatisch de bijbehorende eigendom van windows. Evenzo, wanneer een eigenaar venster is hersteld, het systeem automatisch toont de bijbehorende eigendom van windows. In beide gevallen verzendt het systeem het bericht WM_SHOWWINDOW naar de eigendom windows voordat verbergen of weergeven van hen. Af en toe, kan een toepassing nodig om Vensters te verbergen de eigendom zonder te minimaliseren of verbergen van de eigenaar. In dit geval, de toepassing gebruikt de ShowOwnedPopups functie. Deze functie wordt ingesteld of de stijl van de WS_VISIBLE voor alle eigendom windows verwijdert en verzendt het bericht WM_SHOWWINDOW naar de eigendom windows voordat verbergen of weergeven van hen. Verbergen van een venster eigenaar heeft geen invloed op de status van de zichtbaarheid van de eigendom windows.

Wanneer een bovenliggend venster zichtbaar is, zijn de bijbehorende onderliggende ramen ook zichtbaar. Evenzo, wanneer het bovenliggende venster verborgen is, haar kind windows ook verborgen. Minimaliseren van het bovenliggende venster heeft geen invloed op de status van de zichtbaarheid van de onderliggende vensters; dat wil zeggen, de kind-Vensters zijn geminimaliseerd samen met de ouder, maar de WS_VISIBLE stijl wordt niet gewijzigd.

Zelfs als een venster de stijl van de WS_VISIBLE heeft, misschien de gebruiker niet kunnen zien van het venster op het scherm; andere vensters kunnen het volledig overlappen of het mogelijk is verplaatst voorbij de rand van het scherm. Ook, een venster zichtbaar kind is onderworpen aan de clipping regels die door de ouder-kind relatie. Als het bovenliggende venster van het venster is niet zichtbaar, zal het ook niet zichtbaar. Als het bovenliggende venster wordt verplaatst buiten de rand van het scherm, verplaatst het onderliggende venster ook omdat een onderliggend venster wordt getekend relatief ten opzichte van de linkerbovenhoek van de ouders. Bijvoorbeeld, kan een gebruiker het bovenliggende venster met het kind venster ver genoeg buiten de rand van het scherm dat de gebruiker misschien niet kunnen zien van het onderliggende venster, hoewel het onderliggende venster en een bovenliggende venster beide de WS_VISIBLE stijl hebben verplaatsen.