В этой главе вы узнали, как библиотека MFC соединяет сообщение с функцией членом класса для его обработки, и написали свои первые обработчики сообщений. Большую часть времени при создании программ Windows занимает именно написание обработчиков сообщений, поэтому очень важно иметь четкое представление о том, что вовлечено в этот процесс. Когда мы доберемся до рассмотрения других обработчиков сообщений, вы увидите, что процедура их добавления абсолютно такая же.
Кроме того, мы расширили стандартное меню и панель инструментов в созданной мастером MFC Application Wizard программе, что является хорошей базой для кода приложения, который будет добавляться в следующей главе. Хотя никаких функциональных возможностей в программе пока еще нет, работа меню и панели инструментов уже выглядит очень профессионально — благодаря созданному мастером приложений каркасу и мастеру Event Handler Wizard.
В этой главе также на примере версии CLR программы Sketcher было показано, как создавать меню и панели инструментов в программах CLR и как обеспечивать в них обработку событий для предоставления тех же функций, что и в программах MFC.
В следующей главе мы добавим код, необходимый обеим версиям программы Sketcher, для рисования элементов в представлении и воспользуемся созданными в этой главе меню и кнопками панели инструментов для выбора того, что нужно рисовать и каким цветом. После этого программа Sketcher, собственно говоря, и начнет соответствовать своему названию.упражнения
1. Добавьте пункт Ellipse (Элипс) в меню Element (Элемент).
2. Реализуйте в классе документа соответствующую команду и все необходимые для ее обновления обработчики.
3. Добавьте в панель инструментов кнопку, соответствующую пункту меню Ellepse, а затем добавьте для этой кнопки соответствующую всплывающую подсказку.
4. Измените обработчики команд обновления для пунктов меню, представляющих цвета, так, чтобы выбранный в текущий момент пункт меню отображался прописными буквами, а остальные — строчными.
5. Добавьте элемент меню Ellipse и соответствующую кнопку панели инструментов со всплывающей подсказкой в версию CLR программы Sketcher.
И так начнем. Сначала вообще создаем саму программу с самого начала, как это делается можете посмотреть mfc создание меню и панели инструментов , а также можно посмотреть видео
[youtube]https://www.youtube.com/watch?v=fMTKARu2mkQ[/youtube]
ну я просто коротко в нескольких словах опишу как это делается, реально лень это делать еще раз, в общем мы создаем пункт меню Elipse и добавляем к нему обработчик события, так же добавляем в перечисление enum ElementType еще один елемент который будет называться ELIPSE и уже в обработчике события пункта меню Elipse мы прописываем в самой этой функции elementType=ELIPSE. Ну и все, пункт Elipse в меню Element уже должен работать как нада, дальше нам нужно добавить кнопку Elipse в панель елементов, для этого переходим в редактор панели элементов, там добавляем новую кнопку, рисуем рисунок элипс, дальше добавляем событие к элементу созданной кнопки элипс, то есть функция которая обрабатывает событие для пункта меню Elipse, что б они одинаково реагировали на данные события. А так же мы должны добавить обработчики событий UPDATE_COMMAND_UI для обновления меню, добавляем их и все готово, пункт меню меняется и кнопка в панели инструментов выделяется.
Это в кратце короткий план как делается, по сути сам алгоритм, ну так его нужно делать, мне лень сейчас это все описывать с рисунками. в статье и в видео все расписано как что делать.
Для CLI я написал следующую статью С++/CLI создание меню и панели инструментов и так же есть видео как создавать меню
[youtube]https://www.youtube.com/watch?v=xvJiYOVttmk[/youtube]
На этом ребятки все.