Лабораторная работа №8 по VISUALC++ 2005
"Создание и редактирование ресурсов меню при работе с C++ стандарта ISO/ANSI "
1 Постановка задачи
В пункт меню File добавить подпункт «Privet», при выборе которого на экране появляется текст «Будьмо!». Добавить кнопку инструментов, нажатие на которую дублирует работу добавленного подпункта меню.
2 Общие указания
2.1 Добавление новой команды меню
1)
Start Page.
Create:Project.
Выбрать тип проекта (Project Types) MFC, шаблон- MFC Application,
Name- menu1.
2) В окне Application Type выбрать Single document. Снять флажок Use Unicode libraries. Щёлкнуть на Finish.
3) В левой части окна выбрать вкладку Resource View (Просмотр ресурсов). Щёлкнув по значку «+» около menu1, получим +menu1.rc. После щёлчка на знаке «+» эта папка раскрывается. Выбираем папку Menu и раскрываем ее. Дважды щелкнуть на IDR_MAINRAME. Появится окно редактора меню.
4)
Навести курсор на пункт меню File
→Print Preview ,
щёлкнуть на нём и нажать клавишу insert.
Выше пункта меню File →Print Preview появится пустая вставка.
Занести в неё «Privet».(без кавычек)
5) Для подключения новой команды меню к коду программы следует выделить пункт «Privet», правой кнопкой мыши вызвать контекстное меню и выбрать в нём Add Event Handler (добавить обработчик событий).
6) Появляется окно Event Handler Wizard-menu1. В окне Message type выбрать COMMAND(обычно оно будет установлено автоматически), а в списке Class list выбрать класс Cmenu1View и щёлкнуть на кнопке Add and Edit.
7) В файле menu1View.cpp появится заготовка для функции-
обработчика события. Пункт меню назван на латыни. Поэтому имя обработчика автоматически устанавливается OnFileprivet(). Для пункта меню, названного на киррилице, имя может быть таким:OnFile32772().
Независимо от имени обработчика в нём необходимо запрограммировать запись строки символов «Будьмо!» и вывод её на экран.
Как
известно, информация о том, что выводить на экран, поступает от объекта класса "Документ".
Поэтому предварительно в класс Cmenu1Doc надо занести элемент данных типа CString.
Назовём его stroka. Для этого выбираем вкладку Class
View, выделяем класс Cmenu1Doc,
вызываем контекстное меню и выбираем в нём Add→Add Variable. Появится окно Add Member Variable Wizard—menu1. В окне Access
выбираем метку доступа public.
В окне Variable type пишем CString
В окне Variable name помещаем stroka.
Щёлкнуть на Finish.
8)
В обработчике пишем необходимый
код:
void Cmenu1View::OnFileprivet ()
{
Cmenu1Doc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
pDoc->stroka=”Будьмо!”;// Занесение текста в stroka
Invalidate(); //Объявляется недействительным содержимое окна. //Значит
его можно заменить на новое.
}
9) В функции вывода на экран запрограммируем вывод содержимого переменной stroka:
void Cmenu1View::OnDraw(CDC*pDC)
{
……….
pDC->TextOutW(0,0, pDoc->stroka); //Вывод на экран содержимого
//
переменной stroka в точку
с координатами 0,0 .
}
2.2 Добавлениеновойкнопкиинструментовменю
Создать кнопку в панели инструментов, дублирующую пункт меню
File->Privet.
1) В окне Resource View выбрать папку Toolbar и раскрыть её.
2) Щёлкнуть два раза по IDR_MAINFRAME. Появится окно графического редактора.
В панели инструментов имеется пустая кнопка, а в графическом окне- увеличенное изображение кнопки. Если щёлкнуть по пустой кнопке, в графическом окне будет её изображение.
Выбрать цвет карандаша и нарисовать в увеличенной кнопке какой-либо придуманный Вами символ для пункта меню "Privet" . По окончанию навести курсор на нарисованную кнопку в панели инструментов, и вызвать контекстное меню. В нём выбрать Properties (свойства).
В строке ID щёлкнуть по правой колонке и открыть список. В нём выбрать ID_FILE_PRIVET. Таким образом, установлена связь новой кнопки с пунктом меню File->Privet.
В строке Prompt справа ввести Privet\nPrivet. Это имя кнопки и после "\n" – текст всплывающей подсказки при наведении курсора на кнопку.
3) Закрыть графическое окно, щёлкнув по крестику справа вверху.
3 Контрольные вопросы
1 Как вызвать редактор меню?
2 Как вставить новый пункт меню?
3 Как создать обработчик для нового пункта меню?
4 Как добавить новую кнопку в панель инструментов?
5 Как связать кнопку инструментов с требуемым пунктом меню?
6 Как сделать для кнопки меню всплывающую подсказку?
7 Как запрограммировать выводимый обработчиком текст и как его вывести на экран?
Список литературы
1 Айвор Хортон VISUAL C++ 2005 Базовый курс, «Диалектика», Москва*Санкт-Петербург*Киев , 2007г.
2 Сергеев А.П., Терен А.Н. Программирование в VISUAL C++ 2005 «Диалектика», Москва*Санкт-Петербург*Киев , 2006г.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.