Оконная процедура, стандартные оконные процедуры


Каждое окно связано с классом окна. Класс окна – это класс, или предоставляемый Windows(заранее определенный класс), или определенный пользователем и зарегистрированный с помощью функции RegisterClass.

  • Задача класса окна – определение характеристик и функциональных возможностей множества связанных с ним окон.

Наиболее примечательным, но, разумеется, не единственным свойством класса окна является оконная процедура. Именно через оконную процедуру реализуется поведение окна.Отвечая на различные сообщения, оконная процедура определяет реакцию окна на события мыши и клавиатуры и изменение его внешнего вида в соответствии с этими событиями.

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

Windows поддерживает две оконные процедуры по умолчанию: DefWindowProc и DefDlgProc.

  • Функция DefWindowProc реализует поведение по умолчанию типичного окна верхнего уровня.
  • Функция DefDlgProc используется диалоговыми окнами, икроме поведения по умолчанию окон верхнего уровня,она управляетпереходом фокуса ввода между элементами управления диалогового окна.

Кроме оконных процедур по умолчанию, Windows также поддерживает множество классов окон. Они реализуют такие элементы управления диалоговых окон, как кнопки, поля ввода и другие. Такие классы называются системными (предопределенными)т классами.

Является ли класс поддерживаемым Windows или определенным приложением, приложение может использовать любой существующий класс (системный или определенный приложением) для порождения нового класса и реализации его нового или измененного поведения.Для этого используются механизмы, называемые разбиением на субклассы (подклассы) или объединение в суперклассы.

Замечание.Следует только заметить, что

  • Приложение не должно пытаться применить операцию разбиения на субклассы или объединения в суперклассы к окну, принадлежащему другому процессу.
  • В Win32 изменения в системных классах влияют только на окна этого класса внутри одного приложения. Эти изменения никак не влияют на окна в других приложениях, потому что приложения Win32 запускаются в разных адресных пространствах; таким образом, они защищены друг от друга.


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


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

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

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

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