Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




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

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

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

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

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

 

 

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

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

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

· bEllipseFlag – эллипс;

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

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

 

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

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

 

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

 

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

Значения всех свойств проекта можно оставить такими, как они заданы по умолчанию, кроме группы свойств 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 для того, чтобы завершить создание приложения.

Шаг 2. Протестируйте полученное приложение.

Запустите приложение на выполнение с помощью команды F5, чтобы убедиться в том, что приложение – пока вы не начали его усовершенствовать – еще работоспособно.

 

 
 

Рис. 2. Свойства приложения

 

 
 

Рис. 3. Настройка свойств панели инструментов

Шаг 3. Добавление переменных. Откройте заголовочный файл PainterView.h и добавьте в объявление класса вида CPainterView описание таких переменных (это удобнее сделать с помощью с помощью мастера ИС):

 

 

Класс CPoint (точка) предназначен для облегчения работы с координатами точек и его единственными член-данными являются целочисленные данные x и y.

Шаг 4. Добавление член-функции MakeAllFlagsFalse().

Присваивать начальные значения флагам, как и любым другим член-данным класса, надо в конструкторе. Так как эти флаги необходимо сбрасывать (присваивать им значение false) всякий раз при выборе пользователем другой фигуры, то имеет смысл делать это в специальной функции MakeAllFlagsFalse(). Поместите прототип этой функции

void MakeAllFlagsFalse();

в заголовочный файл класса вида CPainterView вслед за описанием приведенных выше переменных.

Реализацию метода надо поместить в файл PainterView.срр (например, в конец файла после строки #endif //_DEBUG):

 

Новый метод надо вызвать в конструкторе класса CPainterView:

 

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

 




Поделиться с друзьями:


Дата добавления: 2014-12-26; Просмотров: 405; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.