Какова цель регистрации оконных классов? - PullRequest
7 голосов
/ 14 декабря 2011

Какова цель регистрации класса окна с помощью WNDCLASSEX и RegisterClassEx() при создании окна в приложении Windows API?

Ответы [ 2 ]

5 голосов
/ 14 декабря 2011

Разделение атрибутов окна на вещи CreateWindow () и RegisterClass () было сделано на ранней стадии, чтобы позволить создание окон с единообразным поведением.Диалоговые элементы управления (кнопки, списки и т. Д.) Являются ярким примером - все они имеют общий класс.Это означает - они совместно используют оконную процедуру, это означает - они разделяют логику рисования, реакции ввода, пользовательские сообщения, уведомления и т. Д.

На уровне приложения, наиболее типичный случай, когда у вас много одинаковых оконКласс - это документы в интерфейсе с несколькими документами.Иногда люди вводят специфичные для приложения элементы управления.Таким образом, различие служит своей цели.

5 голосов
/ 14 декабря 2011

Основная цель - дать системе право WndProc на вызов, когда в очереди сообщений есть что-то для обработки.

Есть несколько флагов, но главное - выше.

Классы окна соответствуют типам «виджетов» в пользовательском интерфейсе:

  • кнопка
  • Флажок
  • * 1013 полоса прокрутки *
  • выпадающий
  • ListBox

WndProc является единственным драйвером поведения виджета.

Отсюда и отображение: виджет (тип элемента управления) -> wndclass -> WndProc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...