www.adept7.kiev.ua
| Форум| Гостевая| Ссылки| Программы| Исходные тексты| Наши партнеры.|
   
| Главная| Рассылки| Услуги| Библиотека| Новости| Авторам| Программистам| Студентам|
delphi c++ assembler
  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
 

Rambler's Top100 Rambler's Top100

©  Adept Design Studio

Используются технологии uCoz