Вставка ActiveX сомпоненте в Visual С++
От: aktz Беларусь  
Дата: 17.03.04 12:30
Оценка:
Создал проект Simple Win32 Appl. Добавил ресурс диалог. Помещаю на него любой ActiveX контрол. Набросал след. фрагмент кода.

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
INITCOMMONCONTROLSEX zzz;
zzz.dwSize = sizeof(INITCOMMONCONTROLSEX);
zzz.dwICC = ICC_TREEVIEW_CLASSES | ICC_LISTVIEW_CLASSES;
InitCommonControlsEx(&zzz);
DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), 0, DialogProc);
return 0;
}

Диалог бокс не создается с ошибкой -- 1407 — Ну удается найти класс окна.
В чем дело? Что я сделал неправильно? Без контрола диалог создается.
Re: Вставка ActiveX сомпоненте в Visual С++
От: avbochagov Россия  
Дата: 17.03.04 14:23
Оценка:
Здравствуйте, aktz, Вы писали:

A>int APIENTRY WinMain(HINSTANCE hInstance,

A> HINSTANCE hPrevInstance,
A> LPSTR lpCmdLine,
A> int nCmdShow)
A>{
A> INITCOMMONCONTROLSEX zzz;
A> zzz.dwSize = sizeof(INITCOMMONCONTROLSEX);
A> zzz.dwICC = ICC_TREEVIEW_CLASSES | ICC_LISTVIEW_CLASSES;
A> InitCommonControlsEx(&zzz);
A> DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), 0, DialogProc);
A> return 0;
A>}

A>Диалог бокс не создается с ошибкой -- 1407 — Ну удается найти класс окна.

A>В чем дело? Что я сделал неправильно? Без контрола диалог создается.

ActiveX требует инициализации подсистемы COM, а не Common Comtrols

Смотри функции:
OleInitialize, OleUninitialize, CoInitialize, CoInitializeEx
... << RSDN@Home 1.1.3 stable >>
Re: Вставка ActiveX сомпоненте в Visual С++
От: algol Россия about:blank
Дата: 17.03.04 15:19
Оценка:
Здравствуйте, aktz, Вы писали:

A>Создал проект Simple Win32 Appl. Добавил ресурс диалог. Помещаю на него любой ActiveX контрол. Набросал след. фрагмент кода.


A>Диалог бокс не создается с ошибкой -- 1407 — Ну удается найти класс окна.

A>В чем дело? Что я сделал неправильно? Без контрола диалог создается.

ActiveX контрол должен работать в контейнере. Для этого имеются ATL и MFC реализации. Можно контейнер написать и самому, но это уже для экстремалов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.