Учебник по Visual C++ .Net



Класс для нового представления


"DrawView.h"

Внесите изменения в интерфейс класса, так чтобы он стал:

#pragma once

class CTreeDoc; // Упреждающее объявление

class CDrawView : public CView {

DECLARE_DYNCREATE(CDrawView) protected:

CSize m_szView; // Размеры клиетской области окна

bool m_bNewPoints; // Флаг режима вставки новых точек

bool m_bReady; // Флаг готовности захвата вершины

bool m_bLock; // Флаг захвата вершины

int m_CurID; // Индекс полигона в массиве

HCURSOR m_hGrab; // Курсор захвата

CPen m_penLine; // Перо для изображения контура

CDrawView();

virtual ~CDrawView();

public:

CTreeDoc* GetDocument()

{

return dynamic_cast<CTreeDoc*>(m_pDocument);

}

virtual void OnDraw(CDC* pDC);

//====== Настройка контекста устройства

void SetDC(CDC* pDC);

//====== Перерисовка контура

void RedrawLines (CDC *pDC, CPointS point);

DECLARE_MESSAGE_MAP()

};

Так как мы ввели в класс новый метод GetDocument и тут же дали коды его реализации, то класс CTreeDoc должен быть известен компилятору до того, как он познакомится с классом CDrawView. Вставьте строку с директивой включения файла заголовков

#include "TreeDoc.h"

в список директив файла DrawView.cpp до строки, подключающей файл DrawView.h. Класс нового представления старого документа имеет простое назначение: изобразить в центре своего окна дежурный полигон m_Poly, имеющийся в составе документа. Для упрощения этой задачи мы ввели в класс переменную CSize m_szView, которая будет хранить текущие размеры клиентской области окна. Несколько позже мы дадим коды методов визуального редактирования. Эти методы используют параметры текущего состояния, которые надо инициализировать в конструкторе класса. Откройте файл с кодами реализации класса (DrawView.cpp) и измените конструктор и функцию перерисовки OnDraw:

CDrawView::CDrawView()

{

//====== Всё режимы редактирования выключены

m_bNewPoints = false;

m_bReady = false;

m_bLock = false;

m_CurID = -1;

}

void CDrawView: :OnDraw(CDC* pDC) { CTreeDoc* pDoc = GetDocument ();




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