|
|||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Разработка удобного интерфейса для программыПользовательский интерфейс программы painter состоит из команд меню, кнопок панели инструментов и сообщений мыши, которые будут обрабатываться в нашей программе. Предположим, пользователь захотел нарисовать линию он может выбрать команду Tools|Line или нажать кнопку Line на панели инструментов. Выбранная команда помечается «галочкой», а кнопка Line на панели инструментов переходит в нажатое (выбранное) состояние, как показано на следующем рисунке.
Затем пользователь может щелкнуть мышью там, где должна начинаться новая линия; назовем эту точку начальной:
Теперь пользователь перетаскивает указатель мыши в конечную точку и отпускает кнопку мыши. После этого необходимо нарисовать линию от начальной до конечной точки, как показано на рисунке:
Пока пользователь удерживает кнопку мыши нажатой, мы продолжаем рисовать линии, так что со стороны может показаться, будто пользователь «растягивает» линию мышью. Когда кнопка мыши отпускается, линия фиксируется на экране. Аналогично, с применением начальной и конечной точки, рисуются прямоугольники и прочие фигуры:
Итак, задача пользовательского интерфейса заключается в установке флагов для взаимодействия с графической частью программы. Сейчас мы подробнее рассмотрим назначение этих флагов.
Общая последовательность действий в программе выглядит; так: когда пользователь выбирает режим рисования, мы должны установись соответствующий флаг и тем самым определить тип рисуемой фигуры: bDrawFlag, (для фигур произвольной формы), bLineFlag (для линий), bRectangleFlag (для прямоугольников), bEllipseFlag (для эллипсов) или bFillFlag (для заполнения фигур). Затем пользователь нажимает кнопку мыши, чтобы задать положение начальной точки. Мы запоминаем координаты указателя при этом событии. Далее пользователь перемещает указатель в конечную точку и отпускает кнопку мыши. Поскольку координаты начальной точки уже известны, а флаг был установлен ранее, при отпускании кнопки мыши мы можем просто нарисовать нужную фигуру. Создайте однодокументную (SDI) программу painter с помощью AppWizard. Начнем с объявления необходимых флагов, а также объектов для хранения координат начальной и конечной точек. В конструкторе этим флагам присваивается значение false. На самом деле их необходимо сбрасывать каждый раз, когда пользователь выбирает новый режим рисования (то есть в любой момент времени может быть активен лишь один режим), поэтому мы создадим новый метод MakeAllFlagsFalse() и объявим его в заголовочном файле класса вида, painterView.h:
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.002 сек.) |