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

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

Обработка других сообщений Windows

В определенный момент, несомненно, вы столкнетесь с ситуацией, когда нужно будет ответить на сообщение Windows, для которого в VCL нет соот­ветствующего события. Когда это произойдет, вам нужно будет знать, как обработать такое сообщение. Именно этому и посвящен данный раздел.

VCL имеет события лишь для наиболее часто используемых сообщений Windows. Очевидно, что невозможно обеспечить событиями более 700 сооб­щений Windows. Теория 80/20 говорит, помимо всего прочего, что 20 про­центов людей делает 80 процентов работы. Вероятно, то же самое верно и для сообщений Windows. VCL может обеспечить событиями только 10 или 20 процентов сообщений Windows, но это те сообщения, которые вы исполь­зуете в 90 процентах случаев. Таким образом, остается много сообщений, для которых в VCL нет адекватных событий, и вы должны знать, как их обрабатывать.

Я думаю, вы будете рады узнать, что можно обработать практически любое сообщение Windows, если только знать как. Когда вы изучили основы, каждое новое сообщение — это только вариация на ту же тему. Механизм, который C+4-Builder использует для обработки сообщений, не имеющих VCL событий, называется таблицей отображения сообщений (message тар table). Таблица отображения сообщений связывает некоторое сообщение Windows с определенной функцией в вашем коде. Когда ваше окно получает это сооб­щение, вызывается соответствующая ему функция. Похоже на события, не так ли? Действительно, некоторая аналогия существует.

Обработка сообщений на этом уровне реализуется в три шага.

1. Создайте таблицу отображения сообщений в объявлении класса и добавьте в нее сообщение, которое вы хотите обработать.

2. Добавьте объявление функции обработчика сообщения в объявление клас­са.

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