Программирование графики с использованием Direct3D

       

Мастер создания классов ClassWizard


Карты сообщений представляют собой мощный инструмент, значительно облегчающий обработку событий, но Visual C++ делает эту задачу еще более легкой, предоставляя для использования мастер создания классов ClassWizard. ClassWizard — это инструмент, входящий в состав Visual C++ Developer Studio, который предоставляет возможность добавлять, удалять и редактировать функции обработки событий. На рис. 1.2 показан внешний вид диалогового окна мастера ClassWizard.


Рис. 1.2. Диалоговое окно мастера ClassWizard

В окне мастера ClassWizard вы выбираете сообщение, обработчик которого вам необходим, и щелкаете по кнопке Add Function. Мастер ClassWizard создает не выполняющий никаких действий обработчик для выбранного сообщения, который в дальнейшем вы можете модифицировать в соответствии с вашими требованиями. ClassWizard делает добавление обработчиков событий настолько простым, насколько это возможно, поскольку создаваемые им обработчики уже готовы для компиляции. Единственный отсутствующий в них компонент — это ваш код.

Код, который ClassWizard добавляет в ваш проект немного отличается от рассмотренного ранее кода для карты сообщений. Например, если вы создадите предыдущий фрагмент программы с помощью ClassWizard, он будет выглядеть следующим образом:

BEGIN_MESSAGE_MAP(OurClass, BaseClass) //{{AFX_MSG_MAP(OurClass) ON_WM_PAINT() ON_WM_SIZE() ON_WM_LBUTTONDOWN() //}}AFX_MSG_MAP END_MESSAGE_MAP()

Отличие заключается в том, что ClassWizard вставляет в текст программы элементы, выполняющие роль закладок. С точки зрения компилятора эти закладки являются обыкновенными комментариями, однако мастеру ClassWizard они показывают местоположение карты сообщений в вашем исходном коде. Вы можете удалить эти закладки, и получившийся код будет правильно компилироваться, но вы больше не сможете редактировать карту сообщений с помощью мастера ClassWizard.

Вы также можете использовать ClassWizard для удаления обработчиков событий. Когда вы удаляете обработчик с помощью ClassWizard, будет удалена ссылка в карте сообщений и соответствующее объявление функций. Вам останется только удалить фактическое тело функции.

Далее в этой главе мы рассмотрим пример использования мастера ClassWizard.



Содержание раздела