Класс CLookApp
Главный класс приложения CLookApp, наследованный от базового класса CWinApp, определен во включаемом файле Look.h. Исходный текст этого файла представлен в листинге 4.1. Фактически в классе CLookApp определен только конструктор класса и переопределен метод InitInstance базового класса CWinApp.
Листинг 4.1. Файл Look.h
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h"
//////////////////////////////////////////////////////////////
// Определение класса CLookApp
//
class CLookApp : public CWinApp
{
public:
CLookApp();
// Overrides
//{{AFX_VIRTUAL(CLookApp)
public:
virtual BOOL InitInstance();
//}}AFX_VIRTUAL
// Implementation
//{{AFX_MSG(CLookApp)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//////////////////////////////////////////////////////////////
Реализация класса CLookApp содержится в файле Look.cpp (листинг 4.2). В нем определены конструктор класса CLookApp, метод InitInstance и таблица сообщений класса CLookApp. Кроме того, в файле Look.cpp объявлен глобальный объект theApp главного класса приложения CLookApp.
Листинг 4.2. Файл Look.cpp
#include "stdafx.h"
#include "Look.h"
#include "LookDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//////////////////////////////////////////////////////////////
// Таблица сообщений класса CLookApp
BEGIN_MESSAGE_MAP(CLookApp, CWinApp)
//{{AFX_MSG_MAP(CLookApp)
// DO NOT EDIT
//}}AFX_MSG
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()
//////////////////////////////////////////////////////////////
// Конструктор класса CLookApp
CLookApp::CLookApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
//////////////////////////////////////////////////////////////
// Объект глаавного класса приложения
CLookApp theApp;
//////////////////////////////////////////////////////////////
// Метод InitInstance класса CLookApp.
// Выполняет инициализацию приложения
BOOL CLookApp::InitInstance()
{
// Разрешаем использование органов управления ActiveX
AfxEnableControlContainer();
// Выполняем стандартную инициализацию
#ifdef _AFXDLL
Enable3dControls();
#else
Enable3dControlsStatic();
#endif
// Отображаем на экране диалоговую панель приложения
CLookDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Нажата клавиша OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Нажата клавиша Cancel
}
return FALSE;
}