Статья: Простая программа, использующая MDI интерфейс

7. Теперь напишем код для вывода круга на экран.

Функция OnDraw() класса представления автоматически выполняется всякий раз, когда нужно вывести окно документа.

Напишите следующий код в функции OnDraw() :

void CMDIView::OnDraw(CDC* pDC) { CMDIDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc);

// TODO: add draw code for native data here pDC->Ellipse(m_X - 20, m_Y - 20, m_X + 20, m_Y + 20);

// рисуем круг диаметром 20 }

8. Напишем код для сохранения и считывания данных из файла.

Откройте файл MDIDoc.cpp, найдите в нём функцию Serialize() иизменитееё:

void CMDIDoc::Serialize(CArchive& ar) { if (ar.IsStoring()) {

// TODO: add storing code here( этовыполняется,

если выбрать SAVE ) ar<<m_X;

// записываем m_X в выбранный файл ar<<m_Y;

// записываем m_Y в выбранный файл } else {

// TODO: add loading code here ( этовыполняется,

если выбрать OPEN ) ar>>m_X;

// считываем значение из выбранного файла в m_X ar>>m_Y;

// считываем значение из выбранного файла в m_Y } }

9. Часто бывает нужно изменить некоторые параметры программы, такие как заголовок главного окна или тип файла по умолчанию, который выводится в диалоговых панелях SAVE и OPEN. Для этого нужно выбрать закладку ResourceView и открыть пункт String Table. Вы увидите список переменных проекта( три колонки : ID, Value и Caption ).

IDR_MAINFRAME - заголовок главного окна (изменяется в поле Caption)

IDR_MCIRCLTYPE - тип файла по умолчанию, вы увидите 6 подстрок разделёнными знаком n. Третья и четвёртая подстроки определяют тип документа по умолчанию. У меня CIR FILES( *.cir ) и .cir соответственно. Вы можете поставить свои значения.

10. Теперь создадим кнопку в панеле инструментов. Для этого нужно выбрать закладку ResourceView и открыть пункт Toolbar. Вы увидите панель инструментов в режиме редактирования. Нажмите на самую правую кнопку( пунктирный квадрат ), ниже нарисуйте кнопку по вашему усмотрению. Теперь дважды нажмете на вашу кнопку и введите ID: ID_MYBUTTON и Prompt: Изменение координат кругаnИзменение координат круга. Ну вот и всё, кнопка готова. Теперь нужно создать функцию, которая будет выполняться при нажатии на вашу кнопку :

Выберите пункт меню View далее ClassWizard, выберите закладку Message Maps, Project: MDI, Class name: CMDIView, Object IDs: ID_MYBUTTON, Message: COMMAND и нажмите на кнопку Add Function. В ответ создастся функция void CMDIView::OnMybutton().

11. Теперь по аналогии с главой 15 создадим собственное диалоговое окно с ID: IDD_MY_DIALOG и классом CMyDialog и разместим в нём четыре Edit Box с переменными типа INT: m_DX - текущая позиция по X, m_DY - текущая позиция по Y, m_DXN - новая позииция по X, m_DYN - новая позииция по Y. Не забудте написать #include "MyDialog.h" в файлах MDIDoc.cpp и MDIView.cpp.

12. Теперь напишем код в функцие OnMybutton().

void CMDIView::OnMybutton() {

// TODO: Add your command handler code here CMDIDoc* pDoc = GetDocument();

// получаем указатель на документ CMyDialog MyD;

// создаём переменную класса CMyDialog MyD.m_DX = MyD.m_DXN = pDoc->m_X;

// инициализмруем переменные диалога MyD.m_DY = MyD.m_DYN = pDoc->m_Y; .

К-во Просмотров: 146
Бесплатно скачать Статья: Простая программа, использующая MDI интерфейс