ОкноПрок
В Win32 программировании приложений WindowProc (или оконная процедура ), также известная как WndProc, представляет собой определяемую пользователем функцию обратного вызова , которая обрабатывает сообщения, отправленные в окно. Эта функция указывается, когда приложение регистрирует свой класс окна , и ей может быть присвоено любое имя (не обязательно WindowProc ).
Обработка сообщений
[ редактировать ]Оконная процедура отвечает за обработку всех сообщений, отправляемых окну. Прототип функции WindowProc задается следующим образом:
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
hwnd
является дескриптором окна, в которое было отправлено сообщение, и uMsg
идентифицирует фактическое сообщение по его идентификатору, как указано в winuser.h .
wParam
и lParam
параметры, значение которых зависит от сообщения. Приложение должно идентифицировать сообщение и предпринять необходимые действия.
Обработка по умолчанию
[ редактировать ]В результате различных событий, происходящих в системе, создаются сотни различных сообщений, и обычно приложение обрабатывает лишь небольшую часть этих сообщений. Чтобы гарантировать обработку всех сообщений, Windows предоставляет оконную процедуру по умолчанию, называемую DefWindowProc , которая обеспечивает обработку по умолчанию для сообщений, которые само приложение не обрабатывает.
Приложение обычно вызывает DefWindowProc в конце своей собственной функции WindowProc , чтобы необработанные сообщения могли быть переданы процедуре по умолчанию.