Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод рекомендации АЯ 2 семестр2.docx
Скачиваний:
112
Добавлен:
23.03.2016
Размер:
1.14 Mб
Скачать

Графические объекты

Для задания «пера» используется класс CPen, конструкторы и некоторые методы класса CPen:

CPen();

CPen(int nPenStyle, int nWidth, COLORREF crColor);

BOOL CreatePen(int nPenStyle, int nWidth, COLORREF crColor);

BOOL CreateStockObject(int nIndex);

Для задания «кисти» используется класс CBrush. Конструкторы и некоторые методы класса CBrush:

CBrush();

CBrush(COLORREF crColor);

CBrush(int nIndex, COLORREF crColor);

CBrush(CBitmap* pBitmap);

BOOL CreateSolidBrush(COLORREF crColor);

BOOL CreateHatchBrush(int nIndex, COLORREF crColor);

BOOL CreateStockObject(int nIndex);

В библиотеке классов MFC можно создавать стандартные типы проектов в соответствии с шаблонами, например, можно создать однодокументное приложение (Single document). Классы однодокументного приложения:

class CMyProectApp : public CWinApp // класс-приложение

class CMainFrame : public CFrameWnd // класс главного окна

class CMyProectDoc : public CDocument // класс - документ

class CMyProectView : public CView //класс - представление

Некоторые полезные методы:

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

  • CDocument* CView::GetDocument();

В главном окне есть методы:

  • CDocument* CFrameWnd::GetActiveDocument();

  • CView* CFrameWnd::GetActiveView();

В классе приложения есть поле - указатель на главное окно:

  • CWnd* m_pMainWnd;

Указатель на объект- приложение можно получить с помощью глобальной функции библиотеки MFC:

  • CWinApp * AfxGetApp();

Добавление обработчиков сообщений и событий в однодокументном приложении

Осуществляется автоматически. Чтобы добавить обработчик сообщения, во вкладке классы выделяем требуемый класс, нажимаем правую клавишу мыши, выбираем элемент меню Properties (Свойства) и далее открываем вкладку Messages (Сообщения), выбираем тип сообщения и добавляем функцию обработчик.

Добавить обработчик события, например, «Выбор элемента меню»:

В ресурсах выделяем элемент меню, нажимаем правую клавишу мыши, выбираем в меню элемент Add Event Handler, появляется окно для задания параметров функции обработчика события, в котором задаем параметры и добавляем функцию обработчик.

Вывод графики и перерисовка

Вывод графики желательно выполнять внутри класса «Представление» (внутри функций обработчиков этого класса).

Необходимо использовать классы контекстов устройств: CClientDC, CWindowDC.

Для перерисовки добавить код в метод

void CMyProectView::OnDraw(CDC* pDC)

класса представления после комментария

// TODO: add draw code for native data here

7.3. Задачи и порядок выполнения работы

Условие задачи:

Разработать приложение с меню, в котором содержится несколько элементов (минимум 2). Название элементов соответствуют геометрическим фигурам (например, «круг», «квадрат», …). При выборе элемента меню в окне рисуется соответствующая геометрическая фигура, граница пунктирная синего цвета, закраска красными вертикальными линиями. Обеспечить перерисовку выведенных фигур, например, при сворачивании-разворачивании окна. Обеспечить ввод строки текста с клавиатуры и рисование помощью «мыши» графического примитива в соответствии с вариантом задания, обеспечить перерисовку введенных элементов. Графический примитив – отрезок, начальная точка – точка положения курсора мыши в момент нажатия левой клавиши, рисование происходит при перемещении мыши с нажатой левой клавишей, конечная точка- положение курсора в момент отпускания клавиши. Для рисования отрезков использовать сплошное красное «перо». Возможный внешний вид окна приложения представлен на рисунке 6.

Рисунок 6 – Внешний окна приложения