.


:




:

































 

 

 

 





8

 

 

. Visual C++ , .

writer , .

 

writer

AppWizard (SDI) writer:

1. , . StringData CString, :

 

//writerDoc.h: CWriterDoc

.

.

.

class CWriterDoc: public CDocument

{

protected: //

CWriterDoc();

DECLARE_DYNCREATE(CWriterDoc)

 

//

public:

CString StringData;

 

2. StringData :

CWriterDoc::CWriterDoc()

{

StringData = ;

}

 

3. ClassWizard WM_CHAR OnChar() StringData:

 

void CWriterDoc:: OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)

{

CWriterDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

pDoc->StringData += nChar;

Invalidate();

 

CView::OnChar(nChar, nRepCnt, nFlags);

}

 

4. , OnDraw :

 

void CWriterView::OnDraw(CDC* pDC)

{

CWriterDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

 

pDC->TextOut(0, 0, pDoc->StringData);

}

 

, StringData.

, .

StringData

( writerDoc.h) Serialize(), :

 

void CWriterDoc::Serialize(CArchive& ar)

{

if (ar.IsStoring())

{

//

ar << StringData;

}

else

{

//

ar >> StringData;

}

}

 

StringData. Serialize() ar CArchive, ar cout cin. IsStoring() ar, , , .

StringData . , , , . , , CDocument - SetModifiedFlag(), :

void CWriterView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)

{

CWriterDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

 

pDoc->StringData += nChar;

Invalidate();

pDoc->SetModifiedFlag();

 

CView::OnChar(nChar, nRepCnt, nFlags);

}

 

! .

 

CData : - data CString, . .

 

1. AppWizard (SDI) serializer.

2. VisualC++ File -> New, Files, , CData.h.

 

3. :

class CData: public CObject

{

private:

CString data;

DECLARE_SERIAL(CData);

public:

CData(){data = CString("");}

void AddText(CString text){data += text;}

void DrawText(CDC* pDC){pDC->TextOut(0, 0, data);}

void ClearText(){data = "";}

void Serialize(CArchive& archive);

}

:

- MFC CObject;

- Visual C++ DECLARE_SERIAL, , ;

- Serialize() CObject;

4. CData.cpp, Serialize() Cobject.

5. :

#include stdafx.h

#include serializerDoc.h

 

void CData::Serialize(CArchive& archive)

{

// Serialize() CObject

CObject::Serialize(archive);

// data CData

if (archive.IsStoring())

{

archive << data;

}

else

{

archive >> data;

}

}

// , //

IMPLEMENT_SERIAL(CData, CObject, 0)

 

6. (serializerDoc.h) ( CData) CData DataObject:

// serializerDoc.h CSerializerDoc

//

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

#include "CData.h"

.

.

.

class CSerializerDoc: public CDocument

{

.

.

.

//

public:

CData DataObject;

.

.

.

}

7. DataObject Serialize() Serialize() ( CSerializerDoc):

void CSerializerDoc::CSerializerDoc(CArchive& ar)

{

DataObject.Serialize(ar);

}

8. WM_CHAR OnChar() DataObject CData:

 

void SerializerView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)

{

CSerializerDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

// CData, data

pDoc-> DataObject.AddText(CString(nChar));

Invalidate();

 

CView::OnChar(nChar, nRepCnt, nFlags);

}

 

9. DataObject CData DrawText(), OnDraw() SerializerView:

 

void CSerializerView::OnDraw(CDC* pDC)

{

CSerializerDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

 

pDoc-> DataObject.DrawText(pDC);

}

 





:


: 2016-09-03; !; : 318 |


:

:

.
==> ...

1794 - | 1654 -


© 2015-2024 lektsii.org - -

: 0.029 .