Вы можете создавать приложение как контейнер ActiveX элементов тремя способами. MFC конечно скрывает от Вас большое количество подробностей облегчая работу с ActiveX элементами. Вот эти три способа.
Давайте посмотрим эти способы. Вот здесь в шаге 2 приложения на базе диалогового окна, Вы можете установить поддержку ActiveX элементов.
Это понятно. Давайте сделаем поддержку 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. После этого значек данного элемента появится в списке элементов.
Приложение сейчас не запустится. Вам нужно в ручную подключить поддержку как написано Выше или изначально устанавливать флажок на галочке ActiveX control при создании приложения AppWizard.