Кент Рейсдорф. 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 уменьшают потребность в использовании своих собственных сообщений, но все еще могут встретиться случаи, когда без них не обойтись. Предположим, например, что вы выполняете длинное вычисление в отдельном процессе. (Процессы не будут сегодня рассматриваться.) Если там происходит что-то такое, о чем приложение должно знать, процесс может послать приложению специальное сообщение.

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