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

       

Класс CFtpViewApp


Главный класс приложения CFtpViewApp, определен в файле FtpView.h. Мы привели исходный текст этого файла в листинге 2.4. Класс CFtpViewApp наследуется от базового класса CWinApp. При этом переопределяется единственный виртуальный метод InitInstance, который выполняет инициализацию приложения и отображает на экране главную диалоговою панель приложения.

Листинг 2.4. Файл FtpView.h

#ifndef __AFXWIN_H__

  #error include 'stdafx.h' before including this file for PCH

#endif

#include "resource.h"   // Включаемый файл содержащий

                        // Идентификаторы ресурсов приложения

//============================================================

// Определение класса CFtpViewApp

// Методы класса CDialogApp определены в файле FtpView.cpp

//============================================================

class CFtpViewApp : public CWinApp

{



public:

   CFtpViewApp();

// Overrides

   // В следующем блоке ClassWizard помещает описания

   // переопределенных виртуальных методов класса

   //{{AFX_VIRTUAL(CFtpViewApp)

   public:

   virtual BOOL InitInstance();

   //}}AFX_VIRTUAL

// Implementation

   //{{AFX_MSG(CFtpViewApp)

   // В этом блоке ClassWizard размещает описания методов

   // класса. Не редактируйте содержимое этого блока вручную

   //}}AFX_MSG

   DECLARE_MESSAGE_MAP()

};

Определение конструктора класса CFtpViewApp, метода InitInstance, таблицы сообщений, а также определение объекта данного класса вы найдете в файле FtpView.cpp. Исходный текст этого файла мы представили в листинге 2.5. Заметим, что файлы FtpView.h и FtpView.cpp мы оставляем без изменения какими их создал MFC AppWizard.

Весь программный код, который будет взаимодействовать с сервером FTP и обслуживать диалоговую панель IDD_FTPVIEW_DIALOG, мы добавим к классу CFtpViewDlg. По большей части мы будем использовать для этого средства MFC ClassWizard, так что вручную вам надо будет ввести только исходный текст добавленных методов.

Листинг 2.5. Файл FtpView.cpp


//============================================================

// Приложение для просмотра структуры каталогов

// серверов FTP

//

// (C) Фролов Г.В., 1997

// E-mail: frolov@glas.apc.org

// WWW:    http://www.glasnet.ru/~frolov

//         или

//         http://www.dials.ccas.ru/frolov

//============================================================

// Файл содержит определение методов и таблицы сообщений

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

//============================================================

// Включаемые файлы

#include "stdafx.h"

#include "FtpView.h"

#include "FtpViewDlg.h"

// Для отладочной версии приложения включается дополнительные

// определения

#ifdef _DEBUG

   #define new DEBUG_NEW

   #undef THIS_FILE

   static char THIS_FILE[] = __FILE__;

#endif

//============================================================

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

//============================================================

BEGIN_MESSAGE_MAP(CFtpViewApp, CWinApp)

   //{{AFX_MSG_MAP(CFtpViewApp)

   //}}AFX_MSG

   ON_COMMAND(ID_HELP, CWinApp::OnHelp)

END_MESSAGE_MAP()

//============================================================

// Конструктор класса CFtpViewApp

//============================================================

CFtpViewApp::CFtpViewApp()

{

   // TODO:

}

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

// Объект главного класса приложения

CFtpViewApp theApp;

//============================================================

// Метод InitInstance класса CFtpViewApp.

// Выполняет инициализацию приложения

//============================================================

BOOL CFtpViewApp::InitInstance()

{

#ifdef _AFXDLL

   Enable3dControls();

#else

   Enable3dControlsStatic();

#endif

   CFtpViewDlg dlg;

   m_pMainWnd = &dlg;

   int nResponse = dlg.DoModal();

   if (nResponse == IDOK)

   {

      // TODO: Нажата кнопка OK

   }

   else if (nResponse == IDCANCEL)

   {

      // TODO: Нажата кнопка Cancel

   }

   // Так как диалоговая панель закрыта, возвращаем значение

   // FALSE чтобы завершить приложение

   return FALSE;

}


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