Введение в программирование

включает также код класса CAboutDlg


// App1.cpp : Файл реализации класса приложения // ( включает также код класса CAboutDlg для диалога About) // Таблица сообщений класса CApp1App BEGIN_MESSAGE_MAP(CApp1App, CWinApp) ON_COMMAND(ID_APP_ABOUT, OnAppAbout) ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup) END_MESSAGE_MAP() CApp1App::CApp1App() { } // Конструктор CApp1App theApp; // Объект приложение BOOL CApp1App::InitInstance() // Первый выполняемый метод //приложения { CWinApp::InitInstance(); // Регистрация шаблонов документа CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( // Строка //описания шаблона IDR_MAINFRAME, RUNTIME_CLASS(CApp1Doc), RUNTIME_CLASS(CMainFrame), // Главное окно // SDI приложения RUNTIME_CLASS(CApp1View)); AddDocTemplate(pDocTemplate);

m_pMainWnd->ShowWindow(SW_SHOW); // Отображение // главного окна приложения m_pMainWnd->UpdateWindow(); return TRUE; } // Класс CAboutDlg, реализующий диалог About class CAboutDlg : public CDialog {public: CAboutDlg(); enum { IDD = IDD_ABOUTBOX }; // Идентификатор ресурса диалога protected: virtual void DoDataExchange(CDataExchange* pDX); protected: DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX);} BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) // Таблица сообщений END_MESSAGE_MAP() void CApp1App::OnAppAbout() // Обработчик команды меню About { CAboutDlg aboutDlg; aboutDlg.DoModal(); // Отображение модального диалога } // App1Doc.cpp : файл реализации класса документа CApp1Doc IMPLEMENT_DYNCREATE(CApp1Doc, CDocument) BEGIN_MESSAGE_MAP(CApp1Doc, CDocument) // Таблица сообщений END_MESSAGE_MAP() CApp1Doc::CApp1Doc() {} CApp1Doc::~CApp1Doc() { } BOOL CApp1Doc::OnNewDocument() // Переопределение метода, { // вызываемого при открытии документа if (!CDocument::OnNewDocument()) return FALSE; // Место для добавления кода инициализации документа return TRUE; } void CApp1Doc::Serialize(CArchive& ar) // Сериализация { if (ar.IsStoring()) { // Место для добавления кода сохранения } else { // Место для добавления кода загрузки } } // App1View.cpp : файл реализации класса CApp1View IMPLEMENT_DYNCREATE(CApp1View, CView) BEGIN_MESSAGE_MAP(CApp1View, CView) // Таблица сообщений ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) END_MESSAGE_MAP() CApp1View::CApp1View() { } CApp1View::~CApp1View() { } BOOL CApp1View::PreCreateWindow(CREATESTRUCT& cs) { return CView::PreCreateWindow(cs); } void CApp1View::OnDraw(CDC* /*pDC*/) { CApp1Doc* pDoc = GetDocument(); // Указатель на документ ASSERT_VALID(pDoc); } BOOL CApp1View::OnPreparePrinting(CPrintInfo* pInfo) { return DoPreparePrinting(pInfo); // Действие по умолчанию } void CApp1View::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { } void CApp1View::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { } // MainFrm.cpp : файл реализации класса CMainFrame IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd) BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) //Таблица сообщений ON_WM_CREATE() END_MESSAGE_MAP() static UINT indicators[] = { ID_SEPARATOR, // Идентификаторы ресурсов ID_INDICATOR_CAPS, // для строки состояния ID_INDICATOR_NUM, ID_INDICATOR_SCRL, }; CMainFrame::CMainFrame() { } CMainFrame::~CMainFrame() { } // Обработчик сообщения, получаемого при создания окна int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; return 0; } BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; return TRUE; }

Листинг 20.1.
Закрыть окно





// App1.cpp : Файл реализации класса приложения

// ( включает также код класса CAboutDlg для диалога About)

// Таблица сообщений класса CApp1App

BEGIN_MESSAGE_MAP(CApp1App, CWinApp)

ON_COMMAND(ID_APP_ABOUT, OnAppAbout)

ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)

ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)



ON_COMMAND(ID_FILE_PRINT_SETUP,

CWinApp::OnFilePrintSetup)

END_MESSAGE_MAP()

CApp1App::CApp1App() { } // Конструктор

CApp1App theApp; // Объект приложение

BOOL CApp1App::InitInstance() // Первый выполняемый метод //приложения

{ CWinApp::InitInstance();

// Регистрация шаблонов документа

CSingleDocTemplate* pDocTemplate;

pDocTemplate = new CSingleDocTemplate( // Строка

//описания шаблона

IDR_MAINFRAME,

RUNTIME_CLASS(CApp1Doc),

RUNTIME_CLASS(CMainFrame), // Главное окно

// SDI приложения

RUNTIME_CLASS(CApp1View));

AddDocTemplate(pDocTemplate);

m_pMainWnd->ShowWindow(SW_SHOW); // Отображение

// главного окна приложения

m_pMainWnd->UpdateWindow();

return TRUE;

}

// Класс CAboutDlg, реализующий диалог About

class CAboutDlg : public CDialog

{public:

CAboutDlg();

enum { IDD = IDD_ABOUTBOX }; // Идентификатор ресурса диалога

protected:

virtual void DoDataExchange(CDataExchange* pDX);

protected:

DECLARE_MESSAGE_MAP()

};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { }

void CAboutDlg::DoDataExchange(CDataExchange* pDX)

{ CDialog::DoDataExchange(pDX);}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) // Таблица сообщений

END_MESSAGE_MAP()

void CApp1App::OnAppAbout() // Обработчик команды меню About

{ CAboutDlg aboutDlg;

aboutDlg.DoModal(); // Отображение модального диалога

}

// App1Doc.cpp : файл реализации класса документа CApp1Doc

IMPLEMENT_DYNCREATE(CApp1Doc, CDocument)

BEGIN_MESSAGE_MAP(CApp1Doc, CDocument) // Таблица сообщений

END_MESSAGE_MAP()

CApp1Doc::CApp1Doc() {}

CApp1Doc::~CApp1Doc() { }

BOOL CApp1Doc::OnNewDocument() // Переопределение метода,

{ // вызываемого при открытии документа

if (!CDocument::OnNewDocument())


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