Шаг 80 - Тренировка приложение PR5

	От: Dmitry Panferov 	
Дата: 10 января 2000 г. 3:51
Тема: MFCByStep - question
Пример: Есть MDI приложение, из меню вызывается диалоговое окно в котором
выводятся данные из документа и затем поступают обратно в документ,
в соответствии с новыми данными должно измениться и представление документа

Создание проекта

Создаем точно такое приложение как в PR4. Все один к одному. Зайдем в Resource и помести на диалоговое окно Edit Box и свяжем его с переменной типа CString. Имя дайте m_Edits, как в "Шаг 30 - Первый проект с AppWizard".

Теперь нам надо создать переменную в классе документа для хранения и отображения. Класс документа CPr4Doc. Выделите его в ClassView, нажмите правую кнопку мыши и Add Member Variable. Тип переменной CString имя stringData, а тип доступа public. Жмите OK.

80_1.gif (2214 b)

Создаем код

Переменную необходимо инициализировать - это в функции OnNewDocument.

BOOL CPr4Doc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
stringData=""; // наша переменная
return TRUE;
}

Для отображения этой переменной необходимо изменить функции рисования OnDraw класс просмотра CPr4View.

void CPr4View::OnDraw(CDC* pDC)
{
CPr4Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
pDC->TextOut(10,10,pDoc->stringData); // вывести надпись
}

А вот теперь можно менять функцию нажатия на кнопку мыши в виде.

void CPr4View::OnLButtonDown(UINT nFlags, CPoint point) 
{
CNewDialog cdialog; // объект класса
if (cdialog.DoModal()==IDOK) // если пользователь OK выбрал
{
CPr4Doc* pDoc = GetDocument(); // получить класс документа
pDoc->stringData=cdialog.m_Edits; // поменять переменную класса документа
Invalidate(); // обновить вид
}
CView::OnLButtonDown(nFlags, point);

Смотрим, как будет работать.

80_2.gif (10395 b)

Описание

Приложение MDI работает немного не так как SDI. Создавая новый документ вы создаете дубликаты классов Doc и View. Два документа, два дубликата, три документа - три дубликата. В работающем приложении они независимые. Ваш ввод будет обрабатывать тот вид, который сейчас активный.

80_3.gif (6643 b)

Шпаргалка

Каждый документ в приложении MDI независим.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.