CFormView из DLL
От: Stalker  
Дата: 11.01.02 13:17
Оценка:
Hi ALL !
Есть программа-диспетчер (создана на основе визарда, SDI,
без архитектуры doc/view), эта программа по нажатию пункта меню
загружает dll, в которой хранится класс, производный от CFormView со
своим ресурсом диалога, который хранится в dll. Из dll создаю объект этого класса.
Проблема: невозможно переключить управление по TAB от одного
элемента управления к другому на форме.
Как мне решить эту проблему.
Заранее благодарен.
Re: CFormView из DLL
От: Юнусов Булат Россия  
Дата: 11.01.02 19:21
Оценка:
Здравствуйте Stalker, Вы писали:

S>Hi ALL !

S>Есть программа-диспетчер (создана на основе визарда, SDI,
S>без архитектуры doc/view), эта программа по нажатию пункта меню
S>загружает dll, в которой хранится класс, производный от CFormView со
S>своим ресурсом диалога, который хранится в dll. Из dll создаю объект этого класса.
S>Проблема: невозможно переключить управление по TAB от одного
S>элемента управления к другому на форме.
S>Как мне решить эту проблему.
S>Заранее благодарен.
Твоя основная программа когда загружает дллку скорее всего глюкует от того что на форме есть контролы с идентификаторами которые в твоей проге уже используются. Надо видимо дескриптор ресурсов переключить:
HINSTANCE h = AfxGetResourceHandle(); // хендл ресурсов основной твоей проги
AfxSetResourceHandle(::GetModuleHandle("your.dll"));
тут юзаем ресурсы из твоей билиотеки

потом восстанавливаем основной хендл твоей проги
AfxSetResourceHandle(::GetModuleHandle(h));
Re[2]: Re:Re: CFormView из DLL
От: Stalker  
Дата: 14.01.02 07:45
Оценка:
Здравствуйте Юнусов Булат, Вы писали:
ЮБ>Твоя основная программа когда загружает дллку скорее всего глюкует от того что на форме есть контролы с идентификаторами которые в твоей проге уже используются. Надо видимо дескриптор ресурсов переключить:
ЮБ>HINSTANCE h = AfxGetResourceHandle(); // хендл ресурсов основной твоей проги
ЮБ>AfxSetResourceHandle(::GetModuleHandle("your.dll"));
ЮБ>тут юзаем ресурсы из твоей билиотеки

ЮБ>потом восстанавливаем основной хендл твоей проги

ЮБ>AfxSetResourceHandle(::GetModuleHandle(h));

Пробовал, не помогло.
Еще я заметил, что PreTranslateMessage() загруженной в dll вьюшки
вообще не вызывается.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.