Microsoft Visual C++ и MFC. Программирование для Win95 и WinNT




Синхронизация окон просмотра документа - часть 3


Параметр lHint имеет тип LPARAM и может содержать любое 32-битное значение. В нашем случае мы можем передавать через этот параметр индекс элемента массива документа, который надо перерисовать.

Параметр pHint является указателем на объект типа CObject. Поэтому если вы желаете его использовать, вы должны определить собственный класс, наследованный от базового класса CObject, создать объект этого класса и передать указатель на него методу UpdateAllViews.

Указатель на объект класса, наследованного от CObject, можно присвоить указателю на объект класса CObject, поэтому такая операция разрешена. Следовательно, через этот указатель можно передавать объекты различных типов, наследованных от CObject.

Когда вы будете разрабатывать метод OnUpdate, вы должны проверять тип объекта, передаваемого через параметр pHint. Для этого можно воспользоваться методом IsKindOf класса CObject. Метод IsKindOf позволяет узнать тип объекта уже на этапе выполнения приложения.

В нашем приложении новые фигуры добавляются в документ во время обработки сообщения WM_LBUTTONDOWN методом OnLButtonDown класса окна просмотра. Модифицируем этот метод так, чтобы после изменения документа метод UpdateAllViews передавал остальным окнам просмотра индекс добавленного элемента в массиве pointFigCenter редактируемого документа:

//////////////////////////////////////////////////////////////

// Метод для обработки сообщения WM_LBUTTONDOWN

void CMultiView::OnLButtonDown(UINT nFlags, CPoint point)

{

   // ...

   // Добавляем к массиву, определяющему документ, новый

   // элемент

   pDoc->pointFigCenter.Add(point);

   // Устанавливаем флаг изменения документа

   pDoc->SetModifiedFlag();

   // Записываем в переменную nNewFig индекс последнего

   // элемента массива pointFigCenter

   int nNewFig;

   nNewFig = pDoc->pointFigCenter.GetUpperBound();

   // Сообщаем всем окнам просмотра кроме данного об

   // изменении документа, указывая индекс нового элемента

   // массива, представляющего документ




Содержание  Назад  Вперед