Кент Рейсдорф. 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. Добавьте объявление функции обработчика сообщения в объявление класса.