Управление окнами Windows


Окно в Windows можно определить как прямоугольную область на экране. Однако это определение в своей простоте скрывает множество функциональных возможностей под абстрактной идеей окна как основной единицы взаимодействия пользователя и Windows-приложения.

Окна Windows

Окно – это не только область на экране, посредством которой приложение может представить свой вывод, это еще и адресат событий и сообщений в среде Windows.

  • Окно идентифицируется по дескриптору окна. Этот дескриптор (переменная типа HWND) однозначно определяет каждое окно в системе. Список окон содержит очевидные окна приложений и диалоговых панелей, а также менее очевидные, такие, какрабочий стол, пиктограммы или кнопки.
  • События пользовательского интерфейса объединяются с дескриптором соответствующего окна, образуя сообщение Windows, и посылаются или помещаются в очередь приложения (точнее, в очередь потока), который владеет этим окном.

Естественно, Win32 API предоставляет множество функций по созданию и управлению окнами.

Иерархия окон

Windows организует свои окна в иерархическую структуру:

  • Каждое окно имеет родителя, корнем дерева всех окон является окно рабочего стола, создаваемого Windows при загрузке.
  • Для всех окон верхнего уровня(для главных окон приложений и других перекрывающихся и всплывающих окон приложений) родительским окном является рабочий стол.
  • Родитель дочернего окна – окно верхнего уровня или другое дочернее окно, более высокого уровня по иерархии.

Между окнами верхнего уровня (перекрывающиеся и всплывающие окна) существует еще одна иерархическая связь. Владельцем окна верхнего уровня может быть другое окно того же уровня. Окно, имеющее владельца, всегда отображается поверх своего владельца и исчезает при минимизации окна-владельца.

  • Типичным случаем владения одного окна верхнего уровня другим является приложение, отображающее диалоговое окно. Диалоговое окно не является дочерним окном (оно является всплывающим окном), но его владельцем остается окно приложения.

Рассмотрим несколько наиболее часто употребляемых функций, позволяющих приложению исследовать иерархию окон и находить определенные окна:

  • GetDesktopWindow– позволяет приложению получить дескриптор окна рабочего стола.
  • FindWindow – используется для поиска окна верхнего уровня по имени его класса окна или по заголовку окна.
  • GetParent – идентифицирует родительское окно указанного окна.
  • GetWindow – предоставляет наиболее гибкий способ с иерархией окон. В зависимости от значения второго параметра эту функцию можно использовать для получения идентификатора родительского окна, владельца, окон одного уровня или дочерних окон.


Дата добавления: 2017-01-26; просмотров: 1295;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.