Fenstersichtbarkeit

Ein Fenster kann entweder sichtbar oder ausgeblendet sein. Das System zeigt ein sichtbares Fenster auf dem Bildschirm. Es blendet ein Fenster ausgeblendet durch nicht zeichnen. Wenn ein Fenster sichtbar ist, kann der Benutzer Eingang zum Fenster und zeigen Sie das Fenster Ausgabe. Wenn ein Fenster ausgeblendet ist, wird es deaktiviert. Ein ausgeblendetes Fenster kann vom System oder von anderen Windows-Nachrichten verarbeiten, aber keine Benutzereingaben verarbeiten oder die Bildschirmausgabe. Eine Anwendung setzt ein Fenster Visibility-Zustand beim Erstellen des Fensters. Später, kann die Anwendung den Visibility-Zustand ändern.

Ein Fenster ist sichtbar, wenn der WS_VISIBLE Stil für das Fenster festgelegt ist. Standardmäßig erstellt die CreateWindowEx -Funktion ein ausgeblendetes Fenster, es sei denn, die Anwendung den WS_VISIBLE-Stil angibt. In der Regel legt eine Anwendung den WS_VISIBLE Stil fest, nachdem sie ein Fenster, um Informationen über den Prozess zur Erstellung des Benutzers versteckt halten erstellt hat. Eine Anwendung kann z. B. ein neues Fenster ausgeblendet, während es passt die Darstellung des Fensters beibehalten. Der Style WS_VISIBLE in CreateWindowExangegeben ist, sendet das System die WM_SHOWWINDOW Nachricht an das Fenster nach dem Erstellen des Fensters, aber vor der Anzeige.

Eine Anwendung kann bestimmen, ob ein Fenster sichtbar ist, indem Sie die IsWindowVisible -Funktion. Eine Anwendung kann (sichtbar machen) ein- oder ausblenden ein Fensters mithilfe der Funktion ShowWindow, SetWindowPos, DeferWindowPosoder SetWindowPlacement . Diese Funktionen anzeigen oder ausblenden ein Fensters durch Festlegen oder Entfernen des WS_VISIBLE Stils für das Fenster. Sie senden auch WM_SHOWWINDOW zum Fenster vor dem anzeigen oder ausblenden.

Wenn ein Besitzerfenster minimiert wird, blendet das System automatisch die zugehörigen im Besitz von Windows. Ebenso, wenn ein Besitzerfenster wiederhergestellt wird, zeigt das System automatisch die zugehörigen im Besitz von Windows. In beiden Fällen sendet das System die WM_SHOWWINDOW Nachricht an das Besitzfenster bevor Sie sie anzeigen oder ausblenden. Eine Anwendung möglicherweise gelegentlich zu verstecken das Besitzfenster ohne zu minimieren oder ausblenden den Besitzer. In diesem Fall verwendet die Anwendung die ShowOwnedPopups -Funktion. Diese Funktion setzt oder entfernt den WS_VISIBLE Stil für alle Besitzfenster und sendet die WM_SHOWWINDOW Nachricht an das Besitzfenster bevor Sie sie anzeigen oder ausblenden. Ausblenden ein Besitzerfenster hat keine Auswirkung auf den Sichtbarkeitsstatus des das Besitzfenster.

Wenn ein übergeordnetes Fenster sichtbar ist, sind auch die zugehörigen untergeordneten Fenster sichtbar. Wenn das übergeordnete Fenster ausgeblendet ist, werden ebenso auch seiner untergeordneten Fenster ausgeblendet. Das übergeordnete Fenster zu minimieren, hat keine Auswirkungen auf den Sichtbarkeitsstatus der untergeordneten Fenster; Das heißt, die untergeordneten Fenster sind zusammen mit dem übergeordneten minimiert, aber der WS_VISIBLE Stil wird nicht geändert.

Auch wenn ein Fenster den WS_VISIBLE Stil hat, der Benutzer zu sehen, das Fenster auf dem Bildschirm möglicherweise nicht; andere Windows können es vollständig überlappen oder es kann über den Rand des Bildschirms hinaus verschoben worden. Außerdem unterliegt einem sichtbaren untergeordneten Fenster Ausschnitt Vorschriften, die von ihren Eltern-Kind-Beziehung. Wenn das übergeordnete Fenster nicht sichtbar ist, wird es auch nicht sichtbar. Wenn das übergeordnete Fenster über den Rand des Bildschirms hinaus verschoben wird, wird das untergeordnete Fenster ebenfalls verschoben, da relativ zur linken oberen Ecke des übergeordneten Elements ein untergeordnetes Fenster gezeichnet wird. Beispielsweise kann ein Benutzer das übergeordnete Fenster enthält das untergeordnete Fenster weit genug weg vom Rand des Bildschirms, dass der Benutzer möglicherweise nicht das untergeordnete Fenster, zu sehen, obwohl das untergeordnete Fenster und sein übergeordnetes Fenster beide die Style WS_VISIBLE haben verschieben.