Видимость окна

Окно может быть видимым или скрытым. Система отображает окно видимым на экране. Она скрывает скрытые окно , не прорисовывая его. Если окно является видимым, пользователю можно предоставить ввода в окно и Просмотр вывода окна. Если окно скрыто, его полностью отключается. Скрытое окно может обрабатывать сообщения от системы или от других окон, но он не может обрабатывать ввод от пользователя или отображения вывода. Приложение устанавливает состояние видимости окна при создании окна. Позднее приложение можно изменить видимость.

Окно становится видимым при WS_VISIBLE стиль окна. По умолчанию функция CreateWindowEx создает скрытое окно, если только приложение определяет стиль WS_VISIBLE. Как правило приложение задает стиль WS_VISIBLE после того, как он создает окно сохранить подробные сведения о процессе создания скрыты от пользователя. Например приложение может держать новое окно скрытым, пока приложение определит внешний вид окна. Если в CreateWindowExуказан стиль WS_VISIBLE, система посылает сообщение WM_SHOWWINDOW в окно после создания окна, но перед его отображением.

Приложение может определить, является ли окно видимым с помощью функции IsWindowVisible . Приложение может показать (сделать видимым) или скрыть окно, используя функцию ShowWindow, SetWindowPos, DeferWindowPosили SetWindowPlacement . Эти функции Показать или скрыть окно, задания или удаления WS_VISIBLE стиль окна. Они также отправить сообщение WM_SHOWWINDOW в окно до отображения или скрытия его.

Когда окно-владелец сворачивается, система автоматически скрывает соответствующий принадлежит windows. Аналогично когда окно-владелец будет восстановлен, система автоматически показывает соответствующий принадлежит windows. В обоих случаях система посылает сообщение WM_SHOWWINDOW собственные окна перед прятать или показывать их. Иногда приложение может потребоваться скрыть собственные окна без необходимости сведения к минимуму или скрыть владельца. В этом случае приложение использует функцию ShowOwnedPopups . Эта функция устанавливает или удаляет WS_VISIBLE стиль для всех окон, владении и посылает сообщение WM_SHOWWINDOW на собственные окна перед прятать или показывать их. Скрыть окно-владелец не оказывает влияния на состояние видимости собственные окна.

Когда родительское окно является видимым, проявляются также его связанных дочерних окон. Аналогично когда родительское окно скрыто, его дочерних окон также будут скрыты. Минимизация родительского окна не оказывает влияния на состояние видимости дочерних окон; то есть дочерние окна свернуты вместе с родителем, но не изменяется стиль WS_VISIBLE.

Даже если окно имеет стиль WS_VISIBLE, пользователь может и не сможет увидеть окно на экране; Другие окна могут полностью перекрываются или он мог быть перемещен за пределы края экрана. Кроме того видимый дочернее окно может быть отсечения правил, установленных его родитель-потомок. Если окна родительское окно не отображается, она также не будет виден. Если родительское окно перемещается за пределы края экрана, дочернее окно также перемещает потому что дочернее окно обратить относительно верхнего левого угла родительского элемента. Например пользователь может переместить родительское окно, содержащее дочернее окно достаточно далеко от края экрана, что пользователь может не сможет увидеть дочернее окно, даже несмотря на то, дочернее окно и его родительского окна имеют стиль WS_VISIBLE.