Шаг 257 - Создание ActiveX контейнера

Вы можете создавать приложение как контейнер ActiveX элементов тремя способами. MFC конечно скрывает от Вас большое количество подробностей облегчая работу с ActiveX элементами. Вот эти три способа.

Давайте посмотрим эти способы. Вот здесь в шаге 2 приложения на базе диалогового окна, Вы можете установить поддержку ActiveX элементов.

257_1.gif (4201 b)

Это понятно. Давайте сделаем поддержку ActiveX вручную. Возьмем и создадим проект с именем Test1 на базе диалогового окна. Отключим поддержку ActiveX в AppWizard. Вставим на диалоговую панель Calendar Control 8.0. Попробуйте запустить приложение. Ничего не произойдет и приложение не запустится. Что надо сделать ??? Первое - это включить Afxdisp.h в Stdafx.h.

// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
......
#include	// MFC support for Internet Explorer 4 Common Controls
#include	// My support ActiveX
#ifndef _AFX_NO_AFXCMN_SUPPORT
......
#endif // !defined(AFX_STDAFX_H__8CB63D09_AF68_11D4_9413_8EB12D328D60__INCLUDED_)

Использовать функцию AfxEnableControlContainer() для инициализации механизма работы с элементами ActiveX.

void AfxEnableControlContainer();

Это мы и сделаем:

OOL CTest1App::InitInstance()
{
	// Standard initialization
	// If you are not using these features and wish to reduce the size
	//  of your final executable, you should remove from the following
	//  the specific initialization routines you do not need.
AfxEnableControlContainer();
#ifdef _AFXDLL
	......
};

И приложение запустится и на диалоговом окне будет календарь.

Давайте теперь создадим опять приложение на базе диалогового окна без поддержки ActiveX с именем Test2. Теперь будем добавлять в проект компонент. Через Project -> Add To Project -> Component and controls. Дальше пойдем в папку Register ActiveX component и выберем Microsoft Flex Grid Control, после чего нажмем Import. После этого значек данного элемента появится в списке элементов.

257_2.gif (9410 b)

Приложение сейчас не запустится. Вам нужно в ручную подключить поддержку как написано Выше или изначально устанавливать флажок на галочке ActiveX control при создании приложения AppWizard.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 1.11.2000