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

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

Именно на это тратят свое время программисты на Си (или программисты на Си++, не использующие библиотеки). Теперь сопоставьте приведенную процедуру с тем, как делает то же самое VCL:

int length = Edit->SelLength;

Что вы предпочтете? Независимо от своего источника, командные сооб­щения используются очень интенсивно как программистами, так и самой Windows.

Уведомляющие сообщения, с другой стороны, посылаются только самой средой Windows. Эти сообщения говорят Windows, что что-то произошло внутри элемента управления. Например, сообщение EN_CHANGE посылается после изменения содержимого элемента редактирования. Для компонентов Edit, MaskEdit и Memo в VCL определено событие OnChange, которое гене­рируется в ответ на уведомляющее сообщение EN_CHANGE (а также на некоторые другие). Программисты, использующие традиционные инструмен­тальные средства программирования в Windows, должны перехватывать эти сообщения и обрабатывать их так, как им это необходимо. Все это переводит нас к следующей теме: параметры сообщения.

WPARAM, LPARAM и раскрытие сообщений

Каждое сообщение Windows имеет два параметра: WPARAM (сокращение от word parameter — параметр с длиной в одно машинное слово) и LPARAM (сокращение от long parameter — параметр типа long).

Эти два параметра могут рассматриваться аналогично параметрам функ­ции. После получения сообщения Windows, параметры можно проверить на предмет извлечения информации, относящейся к посланному сообщению. Например, сообщение WM_LBUTTONDOWN — это уведомляющее сообщение, которое посылается после щелчка левой кнопкой мыши в пределах окна. WPARAM для сообщения WM_LBUTTONDOWN содержит специальный код, который сообщает, какие другие кнопки мыши, а также клавиши на кла­виатуре, были нажаты, когда произошло данное событие. LPARAM содержит координаты курсора мыши в момент щелчка. Координата х содержится в младшем слове, а координата у — в старшем слове.

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