Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум «Основы разработки приложений Windows» книга 1.DOC
Скачиваний:
107
Добавлен:
10.05.2014
Размер:
721.41 Кб
Скачать

Работа 11. Программное создание меню

Модифицируйте программу из работы 6 (индивидуальное задание B), удалив из проекта файл ресурсов и выполнив установку меню программным образом (см. подраздел “Программное создание меню” настоящего пособия). Создание меню удобнее всего осуществить в функции обработки сообщенияWMCREATE.

Работа 12. Плавающее меню

Модифицируйте предыдущую программу, заменив в ней статическое меню плавающим (см. раздел “Плавающее меню” настоящего пособия). Активизация плавающего меню должна выполняться при нажатии правой клавиши мыши, для чего в оконную функцию следует включить обработку сообщенияWMRBUTTONDOWN, ивсе действия по созданию меню выполнить в функции обработки этого сообщения.Получите координаты вывода плавающего меню из параметров функцииOnRButtonDown(). Убедитесь в неудовлетворительном позиционировании плавающего меню. Улучшите программу, получивэкранныекоординаты мыши из пакета сообщения (структурной переменнойmsg).

Работа 13. График в диалоговом окне

На основе индивидуального задания С (вывод графика в главное окно) составьте программу, в которой в качестве главного окна приложения выступает модальный диалог без каких-либо органов управления (текстов, кнопок и проч.). Закрасьте окно диалога каким-нибудь цветом и выведите в него ваш график (см. пример 4-6 настоящего пособия).

Закрашивание диалогового окна, как и вывод в него графика, можно выполнить в функции обработки сообщения WMPAINT. Для закрашивания окна следует воспользоваться функциейFillRect(); требуемую для этой функции структуруRECT с координатами рабочей области можно получить из структурыPAINTSTRUCT.

Работа 14. Инструментальная панель (tool bar)

Воспользуйтесь программой из работы 6 (индивидуальное задание В). Выведите в главное окно, помимо обычного меню, инструментальную панель, состоящую из трех кнопок. Нажатие кнопок должно приводить к перекрашиванию фона главного окна в различные цвета. Для обозначения функций кнопок на них можно нарисовать крупные символы (например, круг или крест) соответствующего цвета. Процедура создания инструментальной панели описана в подразделе “Инструментальная панель” настоящего пособия. Для рисования кнопок воспользуйтесь редактором ресурсов среды программирования, как это описано ниже.

Вызовите редактор ресурсов в режиме создания растрового изображения (FileNewResource Project...Bitmap. Выбрав пункт менюBitmapSize and Attributes..., установите ширину изображения 48 пикселов, высоту 16 пикселов, 16 цветов, без компрессии. В таком рисунке поместятся изображения трех кнопок размером 16х16 пикселов. Выбором пунктов менюBitmapShowTool Palette и BitmapShowColor Palette выведите на экран палитры инструментов рисования и цветов. Выбором пункта менюBitmapZoom In увеличьте изображение до приемлемого размера. Разделите поле рисунка на три равные части (которые будут соответствовать трем кнопкам инструментальной линейки), нарисовав с помощью карандаша точки или вертикальные линии с горизонтальными координатами 15 и 31. Нарисуйте какие-либо цветные изображения для всех трех кнопок и залейте фон рисунка серым цветом. Выйдите из редактора ресурсов, сохранив рисунок под именем, например, 14.BMP.

В функцию OnCommand()введите обработку сообщений от трех новых управляющих элементов – кнопок. Обработка будет заключаться в присваивании глобальной переменной типаHBRUSH значения дескриптора кисти соответствующего цвета и вызове функцииInvalidateRect() для инициирования перекрашивания главного окна.

В функции OnPaint() прежде всего закрасьте окно с помощью функцииFillrect(),используя упомянутый выше глобальный дескриптор кисти, который в функцииOnCommand()уже принял требуемое значение. После этого проанализируйте значение глобального переключателя изображения и выведите ту или иную фигуру (в соответствии с индивидуальным заданием В).