Разработка приложений для Internet

Класс 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;

}


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