Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Янг Майкл Дж. -> "Visual С++ 6. Полное руководство: В 2 т.(том2)" -> 147

Visual С++ 6. Полное руководство: В 2 т.(том2) - Янг Майкл Дж.

Янг Майкл Дж. Visual С++ 6. Полное руководство: В 2 т.(том2) — Бином, 2006. — 530 c.
Скачать (прямая ссылка): vicualcc2006t2.djvu
Предыдущая << 1 .. 141 142 143 144 145 146 < 147 > 148 149 150 151 152 153 .. 173 >> Следующая

AFX_S ERVDEMODOC_H_О 3A2EC8C_ABBE_11Dl_8 0 FC_0 0C0F6A83B7 F_INCLUDED_
#if MSC VER > 1000
fpragma once
#endif // _MSC_VER > 1000
class CLine : public CObject {
protected:
int m_Xl, m_Yl, m_X2, m_Y2;
CLine (} {}
DECLARE SERIAL (CLine)
public:
CLine (int XI, int Yl, int X2, int Y2) {
m XI = xi
m "yi = Yl
m ~X2 = X2
m ~Y2 = Y2
}
void Draw (CDC *PDC); int GetMaxX ()
{
return m_Xl > m_X2 ? m_Xl : m_X2; }
int GetMaxY (} {
return m_Yl > m_Y2 ? m_Yl : m_Y2; }
virtual void Serialize (CArchiveS ar) ;
class CServDemoSrvrltem;
class CServDemoDoc : public COleServerDoc {
protected:
CTypedPtrArray<CObArray, CLine*> m_LineArray; public:
void AddLine (int xi, int Yl, int X2, int Y2); CSize *GetDocSize (); CLine *GetLine (int Index); int GetNumLines ();
protected: // используются при сериализации
CServDemoDoc();
DECLARE_DYNCREATE(CServDemoDoc)
// Атрибуты public:
CServDemoSrvrltem* GetEmbeddedltem()
{ return (CServDemoSrvrltem*)COleServerDoc::GetEmbeddedltem(); }
1I Операции public:
// Переопределения
// Переопределения виртуальных функций, // сгенерированные мастером ClassWizard //{{AFX_VIRTUAL(CServDemoDoc) public:
virtual BOOL OnNewDocument() ; virtual void Serialize(CArchive& ar) ; virtual void DeleteContents(); protected:
virtual COleServerltem* OnGetEmbeddedltem(); //}}AFX_VIRTUAL
// Реализация public:
virtual -CServDemoDoc() ; #ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContextS dc) const; #endif
protected:
// Сгенерированные функции схемы обработки сообщений protected:
//{{AFX_MSG(CServDemoDoc)
afx_msg void OnEditClearAll();
afx__msg void OnUpdateEditClearAll(CCmdUI* pCmdUI); afx_msg void OnEditUndo();
afx_msg void OnUpdateEditUndo(CCmdUI* pCmdUI); //)}AFX_MSG DECLARE_MESSAGE_MAP()
};
111111111111111111111111111 III 111/11111111111111111/111111111 III 1111111
II { {AFX_INSERT__LOCATION } }
// Visual С++ вставит дополнительные объявления // сразу перед предыдущей строкой
#endif
// !defined(
// AFX_SERVDEMODOC_H 03А2ЕС8С ABBE 11D1 80FC 00C0F6A83B7F INCLUDED )
CServDemoSrvrltem* GetEmbeddedltem ()
{ return (CServDemoSrvrltem*)COleServerDoc::GetEmbeddedltem(); }
// Операции public:
// Переопределения
// Переопределения виртуальных функций, // сгенерированные мастером ClassWizard //({AFX_VIRTUAL(CServDemoDoc) public:
virtual BOOL OnNewDocument() ; virtual void Serialize(CArchive& ar); virtual void DeleteContents(); protected:
virtual COleServerltem* OnGetEmbeddedltem(); //}}AFX_VIRTUAL
// Реализация public:
virtual -CServDemoDoc(); #ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContextS dc) const; #endif
protected:
// Сгенерированные функции схемы обработки сообщений protected:
//{{AFXJ4SG(CServDemoDoc)
afx_msg void OnEditClearAll();
afx_msg void OnUpdateEditClearAll(CCmdUI* pCmdUI); afx_msg void OnEditUndo();
afx_msg void OnUpdateEditUndo(CCmdUI* pCmdUI); //)}AFX_MSG DECLARE_MES SAGE_MAP()
};
1111111111111 /1111111111111111111111111111111111111111111 /111111 /11111 / II{{AFX_INSERT_LOCATION)}
// Visual С++ вставит дополнительные объявления // сразу перед предыдущей строкой
#endif
// !defined(
// AFX_SERVDEMODOC_H_03A2EC8C_ABBE__11D1_80FC_00C0F6A83B7F_INCLUDEDJ
448
Часть III. Программирование графического интерфейса
Листинг 24.4.
// ServDemoDcc.срр : реализация класса CServDemoDoc //
#include "stdafx.h" #include "ServDemo.h"
#include "ServDemoDoc.h" iinclude "Srvrltem.h"
#ifdef _DEBUG #define new DEBUG_NF,W #undef THIS_FILE
static char THIS_FILE[] =__FILE_;
#endif
/////////////////////////////////////////////////////////////////////// // Класс CServDemoDoc
IMPLEMENT_DYNCPEATE(CServDemoDoc, COleServerDoc)
BEGIN_MESSAGE_MAP(CServDemoDoc, COleServerDoc) //{|AFX_MSGJ4AP(CServDemoDoc)
ON_COMMAND(ID_EDIT_CLEAR_ALL, OnEditClearAll)
ON_UPDATE_COMMAND_UI(ID_EDIT_CLEAR_ALL, OnUpdateEditClearAll) ON_COMMAND(ID_EDIT_UNDO, OnEditUndo)
ON_UPDATE_COr*lAND_UI(ID_EDIT_UNDO, OnUpdateEditUndo) //))AFX_MSG_MAP END_ MESSAGE_MAP()
111111111111111 /1111111111111111111111111111111111111111111111111111111 II Конструктор/деструктор класса CServDemoDoc
CServDemoDoc::CServDemoDoc() {
// Используйте составные OLE-файлы EnableCompoundFile();
// TODO: Здесь добавьте код конструктора
}
CServDemoDoc::~CServDemoDoc()
f
}
BOOL CServDemoDoc::OnNewDocument() {
if (!COleServerDoc::OnNewDocument()) return FALSE;
Глава 24. Использование механизма OLE
AAQ
// ТСТЮ: Здесь добавьте код повторной инициализации
// (БИ!-приложения будут повторно использовать этот документ)
return TRUE;
I lllll/ll 111 III III IIII111111II111111111111111111111111111111111111
II Реализация сервера класса CServDemoDoc
COleServerltem* CServDemoDoc::OnGetEmbeddedltem() {
// OnGetEmbeddedltem вызван структурой для получения // COleServerltem, связанного с документом. // Вызывается только при необходимости
CServDemoSrvrltem* pltem = new CServDemoSrvrItem(this); ASSERT_VALID(pltem); return pltem;
Предыдущая << 1 .. 141 142 143 144 145 146 < 147 > 148 149 150 151 152 153 .. 173 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100