http://tikitak.narod.ru ---- Главная страница сайта
Шаг 23 - Взаимодействие документ-вид
Модель документ-вид - одна из наиболее существенных
особенностей библиотеки MFC - пожалуй наиболее трудна
для понимания.
Френк Крокет техническая поддержка Microsoft Visual C++ :-)
Создание проекта
Нам надо только добавить к меню раздел Help и поле About. Для реакции на событие я установил имя идентификатор выбора About - ID_ABOUT, если сделаете другой - не запутайтесь.
Создаем код
Добавляем к описанию класса документа
class CMyDoc : public CDocument
{
..............
void SetString(CString s);
void OnAbout();
private:
...................
DECLARE_MESSAGE_MAP()
};
Таблица реакций
BEGIN_MESSAGE_MAP(CMyDoc, CDocument)
ON_COMMAND(ID_ABOUT,OnAbout)
END_MESSAGE_MAP()
Реализация
void CMyDoc::OnAbout()
{
SetString("kaev@yandex.ru Artem");
UpdateAllViews(NULL);
}
void CMyDoc::SetString(CString s)
{
csDate=s;
}
Описание
Мы добавили функцию для изменения строки в классе документа SetString. И она изменяется после выбора пункта меню OnAbout.
В OnAbout мы устанавливаем новую строку и вызываем UpdateAllViews эта фукнция заставляет виды перерисовать себя. И им приходится вызывать свою функцию OnDraw и перерисовываться.
В этом примере сама суть идеи документ - вид. Изменяете данные в документе, а виды их отражают. Запустите. попробуйте.
Шпаргалка
Меняйте данные в классе документа.
class CMyDoc : public CDocument
{
..............
void SetString(CString s);
...................
};
После изменения обновите виды
void CMyDoc::OnAbout()
{
SetString("kaev@yandex.ru Artem");
UpdateAllViews(NULL);
}
Предыдущий Шаг | Следующий Шаг | Оглавление By Artem.
Используются технологии uCoz
|