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

7

Создание проекта программы Dialogs.

Выберите пункты меню Файл Создать Проект (File  New  Project). В диалоговом окне Создать проект (New Project) выберите вкладку шаблона MFC в Visual C++. Далее выбираем шаблон Приложение MFC (MFC Application). Замените текст <Введите имя> (<Enter name>) в поле Имя (Name) текстом Dialogs. В поле Расположение (Location) введите путь, где будет храниться новый проект Dialogs, при помощи кнопки Обзор (Browse). Щелкните по кнопке OK. В результате появится окно Мастера приложений MFC (MFC Application Wizard). Перейдите на вкладку Тип приложений (Application Type). Укажите тип приложения Один документ (Single document). Уберите флажок Использовать библиотеки с поддержкой Юникода. Установите стиль документа: Стандарт MFC. Укажите свойство интерфейса: Использовать классическую закрепленную панель инструментов. Щелкните по кнопке Готово (Finish).

Изменим заголовок окна приложения. Для этого добавим команду

m_pMainWnd->SetWindowTextA("КИРПИЧ");

перед строкой

m_pMainWnd->ShowWindow(SW_SHOW);

в исполняемом файле Dialogs.cpp в методе InitInstance() класса CDialogsApp. Таким образом, установим заголовок "КИРПИЧ" в окне приложения проекта.

  1. Добавление переменных, определяющие цвет пера, кисти и толщины пера, в класс CDialogsDoc.

Добавим переменные COLORREF m_ColorBrushDoc и COLORREF m_ColorPenDoc и переменную BYTE m_WidthPenDoc в секцию public класса CDialogsDoc с помощью контекстного меню Добавить Добавить переменную (Add Add Variable) для этого класса. Инициализируем эти переменные в конструкторе этого класса:

m_ColorBrushDoc = RGB(0, 0, 255); // Цвет кисти - синий

m_ColorPenDoc = RGB(255, 0, 0); // Цвет кисти - красный

Значение переменной m_WidthPenDoc измените на 2. Данные переменные поместили в класс CDialogsDoc для того, чтобы была возможность читать из переменных и записывать информацию в эти переменные. Это будет сделано позже.

  1. Создание рисунка в окне приложения.

Для этого изменим код в методе OnDraw на следующий:

void CDialogsView::OnDraw(CDC* pDC)

{

CDialogsDoc *pDoc = GetDocument();

ASSERT_VALID(pDoc);

if (!pDoc)

return;

//Новое перо

CPen pen(PS_SOLID, pDoc -> m_WidthPenDoc, pDoc -> m_ColorPenDoc);

CRect rect;

CBrush brush(pDoc -> m_ColorBrushDoc); // Новая кисть

UINT x1, x2, y1, y2;

GetClientRect(&rect); // Метод возвращает координаты клиентской области окна

x1 = rect.right/2-50; y1 = rect.bottom/2-50; // Вычисляем левый верхний угол прямоугольника

x2 = rect.right/2+50; y2 = rect.bottom/2+50; // Вычисляем правый нижний угол прямоугольника

pDC -> SelectObject(&pen); // Подключаем новое перо

pDC -> Rectangle(x1,y1,x2,y2); // Рисуем квадрат. Для заливки, используем белую кисть

pDC -> SelectObject(&brush); // Подключаем синюю кисть

pDC -> Ellipse(x1,y1,x2,y2); // Рисуем окружность. Для заливки используем новую кисть

pDC -> MoveTo(x1,y1);

pDC -> LineTo(x2,y2);

}

Получим при запуске приложения такое окно:

  1. Создание диалогового окна.

С помощью диалогового окна будем вводить толщину пера. Для каждого диалогового окна в приложении создаются ресурс шаблона диалогового окна и класс диалогового окна. Добавление ресурса осуществляется командой Добавить Ресурс из контекстного меню для папки ресурса Dialogs.rs. В окне Добавление ресурса (Add Resource) выберите элемент Dialog и щелкните на кнопке Создать (New). После этого появятся шаблон диалогового окна. Измените заголовок диалогового окна на текст Толщина линии с помощью окна Свойств. Добавьте элемент управления Edit Control в диалоговое окно. Для элемента Edit Control измените свойство ИД (ID): IDC_EDIT1 на значение IDC_PEN_WIDTH.

Диалоговое окно примет вид:

  1. Создание класса для диалогового окна.

Щелкните правой клавишей мыши в свободной от элементов управления области диалогового окна и выполните команду Добавить класс (Add Class). Введите в поле Имя класса (Name Class) текст Dlg‑ имя класса, затем выберите из списка Базовый класс (Base Class) его базовый класс CDialogEx. Нажмите кнопку Готово (Finish).

  1. Связывание элемента управления IDC_PEN_WIDTH диалогового окна Толщина линии с переменной.

Выполните команду Добавить переменную (Add Variable) из контекстного меню для элемента IDC_PEN_WIDTH диалогового окна. Открывается окно Мастер добавления переменной-члена (Add Member Variable Wizard). Выбираем из списка поля Категория (Category) значение Value. В списке Доступ (Access) выбираем пункт public, а в списке Тип переменной (Variable type) ‑ BYTE. Вводим в поле Имя переменной (Variable name) имя переменной класса Dlg: m_WidthDlg. Укажите Минимальное значение: 1, а Максимальное значение: 15. Нажмите кнопку Готово (Finish). В конструкторе класса Dlg значение переменной m_WidthDlg измените 0 на 5.

  1. Команды, которые вызываются при нажатии кнопок ok и Отмена в диалоговом окне.

Обработчики кнопок OK и Отмена работают следующим образом. При нажатии кнопки OK вызывается метод UpdateData(TRUE) и затем закрывается диалоговое окно. При нажатии кнопки Отмена вызывается метод UpdateData(FALSE) и после этого закрывается диалоговое окно. В первом случае идет пересылка информации из элемента управления в переменную, которая связана с элементом. Во втором случае идет обмен информации в обратном порядке.

Ввод одного из параметров пера (толщина) при помощи диалогового окна.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]