- •Однодокументный интерфейс Создание проекта
- •Окно Project Worcspace
- •Просмотр дерева наследования
- •Задание 1.1: Создание нового проекта с использованием AppWizard
- •Выбор имени и директория проекта в AppWizard
- •Выбор опций для проекта Ex1
- •Создание проекта Ex1
- •Использование окна проекта ClassView
- •Использование окна проекта FileView
- •Использование окна проекта ResourceView
- •Работа с графикой
- •Задание 1.2
- •Добавим обработчик сообщения мыши
- •Сформируем метода OnLButtonDown, OnMouseMove и OnLButtonUp
- •Упражнение 2: Вывод диалогового окна при нажатии правой кнопки мыши с сообщением координат
Использование окна проекта FileView
Закройте все окна текстовых редакторов. Выберите закладку FileView окна проекта. Вы увидите дерево файлов проекта
Раскройте корневой узел Ex1 Files. Раскройте узелSource Files и дважды щелкните на узлеEx1.CPP, и вы увидите его в текстовом редакторе
Раскройте корневой узел Header Files. Пункты, перечисленные здесь, встречаются в директиве#include других исходных файлов. Дважды щелкните на узлеEx1.H, и вы увидите его.
Дважды щелкните на файле README.TXT и посмотрите его.Он сгенерированAppWizard
Использование окна проекта ResourceView
Закройте все окна текстовых редакторов. Выберите закладку ResourceView окна проекта. Вы увидите дерево ресурсов проекта
Раскройте каждую ветвь и два раза щелкните по каждому ресурсу. Вы увидите его в специализированном окне редактора данного ресурса
Быстро посмотрите каждый ресурс
Работа с графикой
В Windowsопределен набор графическихAPI-функций. ВMFCони инкапсулируются классомCDC. Число вспомогательных графических функций велико. Мы ознакомимся лишь с частью из них.
Отображение точки |
COLORREF CDC::SetPixel ( int X, int Y, COLORREF Color) |
Х, У – координаты точки, Color – цвет. В MFC имеются пере-груженные версии, в которых координаты задаются с помощью структуры типа Point. |
Рисование линии |
BOOL CDC::SetPixel( int X, int Y) |
Х, У – координаты точки |
Изменение позиции текущего указателя |
CPoint CDC::MoveTo( int X, int Y) |
Х, У – координаты позиции указателя |
Рисование прямоугольников |
BOOL CDC::Rectangle(int upX, int upY, int lowX, int lowY) |
int upX, int upY – координаты верхнего левого угла, int lowX, int lowY - координаты нижнего правого угла |
Рисование эллипсов |
BOOL CDC::Ellipse(int upX, int upY, int lowX, int lowY) |
определяется координатами описанного вокруг него прямоугольника |
Рисование дуг |
BOOL CDC::Arc( int upX, int upY, int lowX, int lowY, int startX, int startY, int endX, int endY) |
дуга задается двумя объектами – часть эллипса, в который вписан прямоугольник |
Стандартные перья |
CPen, можно получить с помощью функцииCCreateStockObject() |
По умолчанию черное перо толщиной в один пиксел, имеется три стандартных пера BLACK_PEN,WHITE_PEN, NULL_PEN |
Создание собственных перьев |
BOOL CPen:: CreatePen(int Style, int Width, COLORREF Color) |
Style –стиль создаваемого пера, Width - толщина, Color – цвет |
Пользовательская кисть |
BOOL CBrush:: CreateSolidBrush (COLORREF Color) |
Сплошная кисть |
Задание 1.2
В этом задании вы используете уже построенное ранее приложение Ex1, добавив в него обработку сообщения мыши и возможность рисовать линию
Добавим обработчик сообщения мыши
В меню View выберите ClassWizard, появится страница MFC ClassWizard
Выберем закладку Message Maps, в ней проект Ex1, класс – Cex1View и Object ID - Cex1View .
В списке сообщений Messages выберите сообщение мыши WM_LBUTTONDOWN и нажмите Add Function.
Повторите предыдущий шаг для сообщений WM_MOUSEMOVE и WM_LBUTTONUP
Нажмите Ok для закрытия НажмитеOk