Кент Рейсдорф. BORLAND C++BUILDER. Раздел 4
Кент Рейсдорф. BORLAND C++BUILDER. Страница 427
Член Result более важен. Он содержит возвращаемое значение для сообщения, которое вы обрабатываете. Возвращаемое значение изменяется от сообщения к сообщению. Например, значение, возвращаемое вашим обработчиком сообщения WM_ERASEBKGND, должно быть true, если вы стираете фон до начала рисования, или false, если вы не стираете фон. (Чтобы определить, какие значения может принимать Result, обратитесь к интерактивной справке API Win32 по конкретному сообщению, которое вы обрабатываете.) При необходимости установите для члена Result нужное значение:
Любые другие члены-данные раскрывающей структуры меняются от сообщения к сообщению.
Иногда в дополнение к вашей собственной обработке, вам придется вызывать заданный по умолчанию обработчик конкретного сообщения. В этом случае вы можете вызвать DefaultHandler() или метод базового класса Dis- patch(). Какой из них использовать — зависит от последующих действий. Например, при одних обстоятельствах вам может потребоваться закрасить фон вашего окна, а при других — нет. Если вы не закрашиваете фон, то оставьте эту работу VCL, которая закрасит фон заданным по умолчанию способом. В этом случае можно сделать следующее:
В других случаях вы будете вызывать DefaultHandler() для выполнения некоторой обработки по умолчанию. Вызываете ли вы DefaultHandler() до своей обработки или после нее, зависит от того, что вы хотите получить.
Сообщения, определяемые пользователем
Помимо нормальных сообщений Windows, вы можете создать сообщение, определяемое пользователем (user-defined message). Определяемое пользователем сообщение — это частное сообщение, которое вы можете послать самому себе или одному из окон вашего приложения. Существует ряд причин, по которым вам могут потребоваться такие сообщения. События VCL уменьшают потребность в использовании своих собственных сообщений, но все еще могут встретиться случаи, когда без них не обойтись. Предположим, например, что вы выполняете длинное вычисление в отдельном процессе. (Процессы не будут сегодня рассматриваться.) Если там происходит что-то такое, о чем приложение должно знать, процесс может послать приложению специальное сообщение.