Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Разработка графического редактора




В программе всегда есть еще одна ошибка

Закон Мерфи


Цель работы – освоить программирование меню и панели инструментов для создания пользовательского интерфейса, программирование обработчиков событий от мыши, применение метафайлов Windows для сохранения изображений, создаваемых с помощью средств класса CClientDC (4 час.).

 

Задание.

Требуется разработать программу, которая должна позволять пользователю легко создавать графические изображения, рисовать мышью различные фигуры и сохранять их на диске.

Приложение должно иметь меню Инструменты (Tools), из которого пользователь сможет выбрать вид фигуры (линия, прямоугольник, произвольная фигура). Кроме того, приложение должно позволять выбрать вид фигуры с помощью кнопок панели инструментов.

Программа должна также позволять «растягивать» фигуру мышью до нужных размеров, как, например, это делается в программе Paint системы Windows. Пользователю также должна быть предоставлена возможность закраски нарисованной фигуры некоторым цветом.

Для того чтобы созданное пользователем изображение восстанавливалось при перекрытии или сворачивании окна программы, программа должна использовать такой прием, как сохранение изображения (нарисованных пользователем фигур) в метафайле Windows (.wmf) и воспроизводить этот файл для восстановления изображения. Кроме того, программа должна позволять открывать (созданные ею) метафайлы Windows и добавлять в них новые фигуры. Идея такой программы почерпнута из работы [1].

Проектирование программы

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

Например, если пользователь выбирает из меню команду рисования линий или нажимает соответствующую кнопку на панели инструментов, то флагу bLineFlag присваивается значение true. Если теперь пользователь устанавливает мышь в какую-нибудь позицию окна, нажимает ЛКМ, перемещает мышь и отпускает ЛКМ, то графическая часть программы проверяет значения флагов и определяет, что рисовать следует линию. Таким образом, пользовательский интерфейс программы отделяется от собственно графики.

Разработка интерфейса

Пользовательский интерфейс состоит из команд меню, кнопок панели инструментов и сообщений мыши, которые будут обрабатываться программой. Если, предположим, капризный пользователь захотел нарисовать прямую линию, он может выбрать команду меню Tools→Line или нажать кнопку Line на инструментальной панели. Выбранная команда меню должна быть помечена «галочкой», а кнопка Line должна перейти в нажатое (выбранное) состояние. Затем пользователь может щелкнуть ЛКМ там, где должна начаться новая линия. Назовем эту точку начальной. Теперь пользователь, удерживая ЛКМ в нажатом состоянии, перетаскивает мышь в конечную точку и отпускает ЛКМ. Программа должна нарисовать линию из начальной точки в конечную. Кроме того, программа должна рисовать линию и в процессе перемещения мыши, так что пользователь как бы «растягивает» линию. После же отпускания ЛКМ линия должна фиксироваться.

 

Установка флагов

 

Выберем такие идентификаторы для флагов:

· bLineFlag – прямая линия;

· bRectangleFlag – прямоугольник;

· bDrawFlag – фигура произвольной формы;

· bFillFlag – флаг для заливки фигур.

 

Шаг 1. Сгенерируйте приложение SDI.

Из меню File в Visual C++ выберите New Project, в дереве Project Types выберите MFC, а в Templates – MFC Application. Не устанавливайте переключатель “Create directory for solution”. Присвойте проекту имя (в данном примере выбрано имя Painter) и щелкните ОК. В списке Resource language не забудьте выбрать элемент со значением Русский.

 

Рис.1. Выбор мастера для создания каркаса приложения

 

Среда MVS 2010 выведет следующее окно, в правой части которого перечислены заданные по умолчанию свойства проекта.

Значения всех свойств проекта можно оставить такими, как они заданы по умолчанию, кроме группы свойств Application Type (тип приложения): выберите радиокнопарь Single document вместо выбранной по умолчанию кнопки Multiple documents (рис. 2) и в группе Project style выберите радиокнопку MFC standard вместо установленной по умолчанию кнопки Visual Studio.

На вкладке User Interface Features выберите радиокнопку Use a classic menu и Use a classic docking toolbar (рис. 3).

Щелкните кнопку Finish для того, чтобы завершить создание приложения.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...