Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
38
Добавлен:
16.02.2016
Размер:
544.77 Кб
Скачать

IpszResourceName - указатель на строку, содержащую имя ресурса пиктограммы. (Тип параметра также может быть cString.) nIdResource - id ресурса пиктограммы.

Для доступа к стандартным Windows-пиктограммам можно использовать методы LoadStandardlcon и LoadOEMIcon. Идентификаторы этих ресурсов начинаются с префиксов IDI_ и О1С_ и определены в файле WINDOWS.H. void ParseCommandLine (CCommandLineInfo& rCmdlnfo);

Этот метод вызывается для разбора командной строки и передачи параметров для CCommandLineInfo::ParseParam.

Параметры: rCmdlnfo - ссылка на объект CCommandLinelnfo.

При формировании нового приложения средствами AppWizard будет автоматически создаваться экземпляр CCommandLinelnfo и в переопределяемом методе Initlnstance выполняться вызов методов ProcessShellCommand и ParseCommandLine.

Для обработки командной строки последовательно выполняются следующие действия:

  1. В методе Initlnstance создается объект CCommandLinelnfo и передается как параметр метода ParseCommandLine;

  2. Метод ParseCommandLine вызывает метод; CCommandLineInfo::ParseParam отдельно для каждого параметра;

  3. Метод ParseParam заполняет объект CCommandLinelnfo. Этот объект далее передается как параметр методу ProcessShellCommand;

  4. Метод ProcessShellCommand управляет аргументами командной строки и флагами.

void AddDocTemplate (CDocTempIate* pTemplate);

Этот метод вызывается для добавления в список шаблонов документов приложения указанного шаблона документа. Параметр pTemplate является указателем CDocTempIate на добавляемый шаблон.

Отметим, что все шаблоны документов должны быть добавлены до вызова метода RegisterShellFileTypes.

Пример:

// Этот код автоматически формируется AppWizard для MDI-приложения.

BOOL CMyApp::InitInstance()

{…

CMultiDocTemplate* pDocTemplate;

pDocTemplate = new CMultiDocTemplate(

IDR MYTYPE, // Идентификатор ресурса

RUNTIME_CLASS(CMyDoc), // Класс документа

RUNTIME CLASS(CMDIChildWnd), // Стандартный класс дочернего окна MDI

RUNTIME_CLASS(CMyView)); // Класс отображения

AddDocTemplate(pDocTemplate); // Добавление шаблона в список

}

(Более подробно о классах, используемых при формировании шаблона документа, см. в гл. 6.)

virtual CDocument* OpenDocumentFile (LPCTSTR ipszFileName);

Метод вызывается для открытия указываемого параметром файла. При успешном выполнении возвращается указатель на CDocument, в противном случае - NULL.

Если документ уже открыт, то будет активизировано окно, содержащее документ.

В том случае, если приложение поддерживает несколько шаблонов документов, будет выполнен поиск подходящего (по расширению имени файла). Для загрузки документа шаблон создает окно-рамку и отображение документа.

virtual BOOL Initlnstance ();

Переопределяемый метод, вызываемый функцией WinMain для инициализации экземпляра запускаемого приложения. Обычно в этом методе конструируется объект - главное окно приложения и соответственно определяется значение CWinThread::m_pMainWnd. При успешном завершении инициализации метод возвращает ненулевое значение.

virtual int Exitlnstance ();

Этот метод вызывается из метода Run при завершении работы данного экземпляра приложения.

При завершении работы приложения без ошибок возвращается значение 0.

void CloseAllDocuments (BOOL bEndSession);

Метод закрывает все открытые в приложении документы. Перед вызовом этого метода следует вызвать метод HideApplication.

Значения параметра bEndSession (TRUE или FALSE) указывают на завершение сеанса Windows. BOOL Enable3dControls ();

BOOL Enable3dControlsStatic ();

Эти методы вызываются при инициализации приложения из метода Initlnstance для получения доступа к использованию 3D (трехмерные) элементов управления. Для этого должна быть загружена динамически подключаемая библиотека CTL3D32.DLL. При успешной загрузке библиотеки методы возвращают значение TRUE.

Библиотека MFC автоматически предоставляет сервис 3D для элементов Управления, расположенных в классе окна, производном от одного из следующих классов:

  • CDialog

  • CDialogBar

  • CFormView

  • CPropertyPage

  • CPropertySheet

  • CControlBar

  • CToolBar.

При этом следует только вызвать метод Enable3dControls или Enable3dControlsStatic. В противном случае (если окно принадлежит другому классу) следует непосредственно вызывать функции CTL3D32 API.

Пример:

#ifdef_AFXDLL

Enable3dControls (); // Вызов метода Enable3dControls

#else

Enable3dControIsStatic ();

// Вызов метода EnabIe3dControlsStatic

#endif

Соседние файлы в папке VC++Баженова