Кент Рейсдорф. BORLAND C++BUILDER. Раздел 4

Кент Рейсдорф. BORLAND C++BUILDER. Страница 426

Параметр message handler — это фактическое имя функции, обрабаты­вающей сообщение. Вы можете использовать любое имя, которое вам нра­вится, но по традиции (я ввожу традицию прямо сейчас) вы удаляете из имени структуры приставку TWM и добавляете предлог On. Если опять обратиться к WMERASEBKGND, то имя функции обработчика сообщения должно быть OnEraseBkgnd.

Чтобы усвоить эту информации на будущее, вы должны увидеть полное объявление класса, в котором реализована таблица отображения сообщений. В листинге 14.5 показано типичное объявление класса главной формы, ко­торый использует таблицу отображения сообщений.

Листинг 14.5. Message.h

Обратите внимание на таблицу отображения сообщений в конце объяв­ления класса и на объявление функций для обработки сообщений. (Не при­нимайте во внимание строки 11, 30 и 34. В них реализуется определяемое пользователем сообщение, о чем я буду говорить немного позже.)

Функция обработки сообщения

Функция обработки сообщения (или просто обработчик сообщения) — это функция, которая будет вызываться каждый раз, когда сообщение, на которое вы реагируете, получено вашим приложением. Обработчик сообщения имеет единственный параметр — структуру, раскрывающую сообщение, о которой я говорил раньше. Обработчик для сообщения WM_ERASEBKGND может выглядеть следующим образом:

void fastcall TMainForm::OnEraseBkgnd(TWMEraseBkgndS Message)

(

// ваш код обработки сообщения

}

Как я уже говорил, раскрывающая структура будет содержать все пара­метры, необходимые для обработки сообщения. Структура, раскрывающая сообщение WMERASEBKGND, имеет следующий вид:

Все раскрывающие структуры имеют, как правило, два члена-данных: Msg и Result. Член Msg содержит сообщение, которое было послано. Этот параметр используется VCL и не относится непосредственно к вам.

Web-дизайн (с) 2010 All rights reserved