Microsoft Visual C++ и MFC. Программирование для Win95 и WinNT



Метод InitInstance класса CMultiApp


Основную работу по инициализации приложения выполняет метод InitInstance главного класса приложения, определенный в файле Multi.cpp. Как видите, он отличается от метода InitInstance, который используется для однооконных приложений:

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

// Метод InitInstance

BOOL CMultiApp::InitInstance()

{

#ifdef _AFXDLL

   Enable3dControls();  

#else

   Enable3dControlsStatic();

#endif

   // Загружаем файл конфигурации

   LoadStdProfileSettings(); 

   // Создаем шаблон документа

   CMultiDocTemplate* pDocTemplate;

   pDocTemplate = new CMultiDocTemplate(

      IDR_MULTITYPE,

      RUNTIME_CLASS(CMultiDoc),

      RUNTIME_CLASS(CChildFrame),

      RUNTIME_CLASS(CMultiView));

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

   AddDocTemplate(pDocTemplate);

   // Создаем главное окно приложения (MDI Frame window)

   CMainFrame* pMainFrame = new CMainFrame;

   if (!pMainFrame->LoadFrame(IDR_MAINFRAME))

      return FALSE;

   m_pMainWnd = pMainFrame;

   // Выполняем стандартную обработку командной строки

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

   CCommandLineInfo cmdInfo;

   ParseCommandLine(cmdInfo);

   // Обрабатываем командную строку приложения

   if (!ProcessShellCommand(cmdInfo))

      return FALSE;

   // Отображаем окно

   pMainFrame->ShowWindow(m_nCmdShow);

   pMainFrame->UpdateWindow();

   return TRUE;

}

В начале InitInstance вызываются методы Enable3dControls и LoadStdProfileSettings. Они уже были описаны в предыдущем томе серии “Библиотека системного программиста”, посвященном MFC, поэтому мы не станем на них останавливаться и перейдем к рассмотрению шаблонов документа приложения.

Затем создается указатель pDocTemplate на объекты класса шаблона документов. Для однооконных приложений это класс CSingleDocTemplate, а для многооконных - CMultiDocTemplate. Создается новый объект класса и указатель на него записывается в переменную pDocTemplate. Для создания шаблона документа используется оператор new.




Содержание  Назад  Вперед