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

         

Класс CSingleView


Следующий класс, который мы рассмотрим, является классом окна просмотра документа CSingleView. Этот класс наследуется от базового класса CView библиотеки MFC. Определения класса CSingleView вы можете найти в файле SingleView.h.

Окно просмотра и связанный с ним класс окна просмотра документа создается шаблоном документа в процессе работы приложения. Поэтому необходимо, чтобы объекты класса CSingleView можно было создавать динамически.

Для этого определяется конструктор класса, не имеющий параметров, в определении класса указывается макрокоманда DECLARE_DYNCREATE, а в файле реализации макрокоманда IMPLEMENT_DYNCREATE.

class CSingleView : public CView

{

protected:

      CSingleView();

      DECLARE_DYNCREATE(CSingleView)

// Attributes

public:

      CSingleDoc* GetDocument();

// Operations

public:

// Overrides

      //{{AFX_VIRTUAL(CSingleView)

public:

      virtual void OnDraw(CDC* pDC);

      virtual BOOL PreCreateWindow(CREATESTRUCT& cs);

protected:

      virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);

      virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);

      virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);

      //}}AFX_VIRTUAL

// Implementation

public:

      virtual ~CSingleView();

#ifdef _DEBUG

      virtual void AssertValid() const;

      virtual void Dump(CDumpContext& dc) const;

#endif

protected:

// Методы, предназначенные для обработки сообщений

protected:

      //{{AFX_MSG(CSingleView)

      //}}AFX_MSG

      DECLARE_MESSAGE_MAP()

};

Секция Overrides в описании класса CSingleView содержит описания переопределяемых виртуальных методов базового класса CView. Два метода описаны в ней как public - OnDraw и PreCreateWindow и три как protected - OnPreparePrinting, OnBeginPrinting, OnEndPrinting. Поэтому методы OnDraw и PreCreateWindow можно вызывать и из других классов приложения, а методы OnPreparePrinting, OnBeginPrinting, OnEndPrinting только из класса CSingleView.



Содержание раздела