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

 

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

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

Янг Майкл Дж. Visual С++ 6. Полное руководство: В 2 т.(том1) — Бином, 2006. — 569 c.
Скачать (прямая ссылка): vicualcc2006t1.djvu
Предыдущая << 1 .. 110 111 112 113 114 115 < 116 > 117 118 119 120 121 122 .. 204 >> Следующая

}
void CAboutDlg::DoDataExchange(CDataExchange* pDX) {
CDialog::DoDataExchange(pDX); //{(AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// Обработчики сообщений отсутствуют
//))AFX_MSG_MAP END_MESSAGE_MAP()
// Функция отображения диалогового окна
void CMiniDrawApp::OnAppAbout()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal ();
1111111111111111111111 f 111111111111111 /1111111111111111111111111 II Другие функции класса CMiniDrawApp
Листинг 12.3
// MiniDrawDoc .-h : интерфейс класса CMiniDrawDoc //
1111111111111111111111111111111111111111111111111111111111111111 #if !defined(
AFX_MINIDRAWDOC_H_llE8392A_999A_llDl_80FC_00C0F6A83B7F_INCLUDED_)
#define
AFX__MINIDRAWDOC_H_11E8392A_999A_11D1_80FC_00C0F6A83B7F_INCLUDED_
#if _MSC_VER > 1000 #pragma once
#endif // _MSC_VER > 1000
class CLine : public CObject f
protected:
DWORD m_Xl, m_Yl, m_X2, m_Y2;
CLine () { >
DECLARE_SERIAL (CLine) public:
CLine (int XI, int Yl, int X2, int Y2) {
m_Xl = XI; m_Yl = Yl; m_X2 = X2; m_Y2 = Y2; }
void Draw (CDC *PDC);
virtual void Serialize (CArchiveS ar);
};
class CMiniDrawDoc : public CDocument {
protected:
CTypedPtrArray<CObArray, CLine*> m_LineArray; public:
void AddLine (int XI, int Yl, int X2, int Y2) CLine *GetLine (int Index); int GetNumLines ();
protected:
// используются при сериализации
}
CMiniDrawDoc();
DECLARE_DYNCREATE(CMiniDrawDoc)
// Атрибуты public:
// Операции public:
// Переопределения
// Переопределения виртуальных функций, // сгенерированные мастером ClassWizard //{{AFX_VIRTUAL(CMiniDrawDoc) public:
virtual BOOL OnNewDocument(); virtual void Serialize(CArchiveS ar) ; virtual void DeleteContents(); //})AFX_VIRTUAL
// Реализация public:
virtual -CMiniDrawDoc (); #ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContexts dc) const; #endif
protected:
// Сгенерированные обработчики сообщений protected:
//{{AFX_MSG(CMiniDrawDoc)
afx_msg void OnEditClearAll();
afx_msg void OnUpdateEditClearAll(CCmdUI* pCmdUI); afx_msg void OnEditUndo();
afx_msg void OnUpdateEditUndo(CCmdUI* pCmdUI); //)}AFX_MSG DECIARE_MESSAGE_MAP()
\;
пii1111111111 iii 1111 iii 111//11 iii 111/11111111111111111iiii iii 11 ii {{AFX_INSERT_LOCATION}}
// Visual С++ вставит дополнительные объявления // сразу перед предыдущей строкой
#endif
// !defined(
// AFX_MINIDRAWDOC_H_llE8392A_999A_llDl_80FC_00C0F6A83B7F_INCLUDED_)
Листинг 12.4
// MiniDrawDoc.cpp : реализация класса CMiniDrawDoc
ii-
#include "stdafx.h"
#include "MiniDraw.h"
¦include "MiniDrawDoc.h"
#ifdef _DEBUG #define new DEBUG_NEW tundef THIS_FILE
static char THIS_FILE[] = _FILE_;
#endif
111111111111111111111111111111 iii i iii 111111111111111111111111111 ii Класс CMiniDrawDoc
IMPLEMENT_DYNCREATE(CMiniDrawDoc, CDocument)
BEGIN_MESSAGE_MAP(CMiniDrawDoc, CDocument) //{{AFX_MSG_MAP(CMiniDrawDoc)
ON_COMMAND(ID_EDIT_CLEAR_ALL, OnEditClearAll)
ON_UPDATE_COMMAND_UI(ID_EDIT_CLEAR_ALL, OnUpdateEditClearAll) ON_COMMAND(ID_EDIT_UNDO, OnEditUndo)
ON_UPDATE_COMMAND_UI(ID_EDIT_UNDO, OnUpdateEditUndo) //})AFX_MSG_MAP END_MESSAGE_MAP()
1111111111111111111111111111111111111111111111111111111111111111 ii Конструктор/деструктор класса CMiniDrawDoc
CMiniDrawDoc::CMiniDrawDoc() {
// TODO: Здесь добавьте код конструктора
CMiniDrawDoc::-CMiniDrawDoc()
{
}
BOOL CMiniDrawDoc::OnNewDocument() (
if (!CDocument::OnNewDocumentО ) return FALSE;
// TODO: Здесь добавьте код повторной инициализации
// (SDI-приложения будут повторно использовать этот документ)
return TRUE;
1111111111111111111111111111111111111111111111111111111111111111 ii Сериализация класса CMiniDrawDoc
void CMiniDrawDoc::Serialize(CArchiveS ar) {
if (ar.IsStoring())
{
// TODO: Здесь добавьте код сохранения m_LineArray.Serialize (ar);
}
else
{
// TODO: Здесь добавьте код загрузки m_LineArray.Serialize (ar) ;
}
1
1111111111111111111111 /1111111111111111111111 /1111 /1111111111111 i/ Диагностика класса CMiniDrawDoc
#ifdef _DEBUG
void CMiniDrawDoc: :AssertValid() const {
CDocument::AssertValid();
}
void CMiniDrawDoc::Dump(CDumpContextS dc) const
(
CDocument: : Dump(dc);
}
#endif //_DEBUG
11111111/11111/1/1111/11//i//ii1111111/11/11111/iii 1/11111/1/1/1 ii Другие функции класса CMiniDrawDoc
IMPLEMENT_SERIAL (CLine, CObject, 1)
void CLine: .-Draw (CDC *PDC) f
PDC->MoveTo (m_Xl, m_Yl); PDC->LineTo (m_X2, m_Y2); }
void CLine::Serialize (CArchive& ar) (
if (ar.IsStoring())
ar « m_Xl « m_Yl << m_X2 « m_Y2; else
ar » m_Xl » m_Yl >> m_X2 » m_Y2;
)
void CMiniDrawDoc : .-AddLine (int XI, int Yl, int X2, int Y2) {
CLine *PLine = new CLine (XI, Yl, X2, Y2); m_LineArray.Add (PLine); SetModifiedFlag (); )
CLine ^CMiniDrawDoc: :GetLine (int Index) (
if (Index < О II Index > m_LineArray.GetUpperBound ()) return 0;
return m_LineArray.GetAt (Index); }
int CMiniDrawDoc::GetNumLines () {
return m_LineArray.GetSize (); }
void CMiniDrawDoc::DeleteContents()
Предыдущая << 1 .. 110 111 112 113 114 115 < 116 > 117 118 119 120 121 122 .. 204 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100