Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практична робота № 5.doc
Скачиваний:
31
Добавлен:
19.12.2018
Размер:
67.07 Кб
Скачать

Практична робота № 5 Створення найпростішого графічного режактору.

Мета роботи: навчитися створювати додатки найпростішого графічного редактору з підтримкою миші та панеллю інструментів.

Хід роботи:

В даній практичній роботі буде створений додаток для малювання основних графічних фігур. Програма буде складатися з двох основних частин: перша відповідає за взаємодію з користувачем, а друга – за графічні операції. Великі програми слід ділити на якомога менші компоненти. Для простоти перша частина буде працювати з командами меню, кнопками на панелі інструментів і повідомленнями від миші, а друга – малювати у вікні.

Якщо користувач обирає команду меню, натискує кнопку на панелі або працює з мишею, необхідно встановити відповідний прапорець. В другій частині програми залишається лише перевірити значення прапорців і визначити, що потрібно робити.

Наприклад якщо користувач обирає з меню команду малювання лінії або натискає відповідну кнопку на панелі інструментів прапору bLineFlag присвоюється значення true. Якщо тепер користувач переміщує мишу і потім відпускає кнопку, графічна частина програми визначає яку фігуру їй потрібно малювати.

1.1 Встановлення прапорців.

Створіть додаток з одним документом painter.dsw.

Почнемо з оголошення необхідних прапорців, а також об’єктів для збереження координат початкової і кінцевої точки.

В конструкторі цим прапорцям присвоюється значення false. Насправді їх необхідно скидати кожен раз коли користувач обирає новий режим малювання, тому необхідно створити новий метод MakeAllFlagsFalse() і оголосимо його в заготовочному файлі класу вигляду painterView.h:

class CPainterView : public CView

{

protected:

CPoint Anchor;

CPoint DrawTo;

CPoint OldPoint;

boolean bDrawFlag;

boolean bLineFlag;

boolean bRectangleFlag;

boolean bEllipseFlag;

boolean bFillFlag;

void MakeAllFlagsFalse();

}

Сам метод виглядає дуже просто:

void CPainterView::MakeAllFlagsFalse()

{

bDrawFlag=false;

bLineFlag=false;

bRectangleFlag=false;

bEllipseFlag=false;

bFillFlag=false;

}

Сам метод необхідно викликати у конструкторі:

CPainterView::CPainterView()

{

// TODO: add construction code here

MakeAllFlagsFalse();

}

Прапорці готові к роботі.

2.2 Створення меню і кнопок панелі інструментів.

Відкрийте редактор меню і створіть всі необхідні команди:

Потім відкрийте панель інструментів і створіть нові кнопки:

Тепер зв’яжіть кнопки з командами меню, які вони представляють – для цього двічі клацніть на кнопці і оберіть ідентифікатор команди меню зі списку ID діалогового віна Properties.

Підготовка користувацького інтерфейсу готова.

2.3 Зв’язування прапорців з засобами користувацького інтерфейсу.

Коли користувач обере режим малювання, необхідно задати відповідні значення прапорців. За допомогою Class Wizard зв’яжіть метод кожної команди меню.

void CPainterView::OnToolsLine()

{

// TODO: Add your command handler code here

MakeAllFlagsFalse();

bLineFlag=false;

}

void CPainterView::OnToolsEllipse()

{

// TODO: Add your command handler code here

MakeAllFlagsFalse();

bEllipseFlag=false;

}

void CPainterView::OnToolsFillfigure()

{

// TODO: Add your command handler code here

MakeAllFlagsFalse();

bFillFlag=false;

}

void CPainterView::OnToolsRectangle()

{

// TODO: Add your command handler code here

MakeAllFlagsFalse();

bRectangleFlag=false;

}