![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Окно в ДЛЛ. [D6, WinXP]
Japp © (2004-12-08 14:25:00)Есть DLL со своим окном и потоком обработки GetMessage/DispathMessage.
Окно отображается после загрузки ДЛЛ-ки и висит отдельно от главного окна. Есть ли способ заставить это окно отрисовываться внутри (в какой-нить части) главного окна? Примерно как это делается в COM-технологии (но без использования оной).Нехочется переносить код из ДЛЛ внутрь основной проги...
Japp (2004-12-09 10:46:00) [1]Сенкс... уже смотрю...
Digitman (2004-12-09 08:30:00) [2]
> Japp (08.12.04 18:27) [9]
вот теперь кое-что проясняется.
непонятно только, зачем возникла необходимость создания окна в ДЛЛ в другом трэде, а не в трэде, вызывающем ф-цию ДЛЛ, в которой это окно создается
я бы оформил все это в ДЛЛ виде ActiveX-контрола, со встраиванием которого куда бы то ни было в виде "дочернего окна" нет никаких проблем - хоть в Делфи-форму, хоть в окно документа MS Word ..
Slym (2004-12-09 05:25:00) [3]Демагоги... Можно все! Но как?
Смотрив сторону CreateWindow(... hWndParent)
SetParent(hWndChild,hWndNewParent);
И посмотри в сторону скринсеверов... они отображают превью в настройках экрана
Japp (2004-12-08 18:27:00) [4]А повод простой - кусок кода заключающий в себе протокол обмена с устройством, очень удобно связывается с визуальной отладочной формой. Все отлажено и устойчиво работает в виде ДЛЛ и доп. формы. Просто заказчик мечтает, что у него будет одна форма с множеством закладок... Эта же ДЛЛ-ка идет как драйвер к устройству. Но это все ерунда - мне интересен сам момент
отрисовки окна имеющей собственный тред в окне другого треда
в одном и том же процессе.
Digitman (2004-12-08 17:08:00) [5]
> Japp
ну тебе же правильно говорят - ДЛЛ не для этого предназначены !
есть же вполне определенные (достаточные и необходимые) условия, являющиеся поводом для реализации части прикладного кода в динамически загружаемой библиотеке
у тебя-то что за повод был ? можешь вразумительно и аргументированно разъяснить ?
Leonid Troyanovsky (2004-12-08 17:01:00) [6]
> Japp (08.12.04 16:22) [6]
> 2LVT: А это форум? Или советы дерматолога?
> Кого и кому совать я как нибудь разберусь...
> На все есть свои причины...
> А не можешь на вопрос ответить - не флуди.
Кто здесь флудит это модераторово дело.
Могу - не могу - это мое личное дело.
Причин Ваших я не знаю (да и уж не хочу знать),
достаточно печальных следствий.
Ну, а нет нужды в советах - не читайте (мои особенно).
--
С уважением, LVT.
Japp (2004-12-08 16:22:00) [7]2LVT: А это форум? Или советы дерматолога?
Кого и кому совать я как нибудь разберусь...
На все есть свои причины...
А не можешь на вопрос ответить - не флуди.
Leonid Troyanovsky (2004-12-08 16:04:00) [8]
> Japp (08.12.04 15:49) [4]
> >Т.е., он туда (в ДЛЛ) попал по злому умыслу?
>
> Программирование это вообще метод внесения ошибок :)
> Но умысел как раз добрый - вынести часть интерфейса в подключаемую
> ДЛЛ-ку
Благими намерениями знаешь, что умощено ?
Не надо выносить ничего в dll, и особенно интерфейс,
если это, конечно, не ActiveX или другой COM.
> >Однако, чем быстрее ты вернешь его взад,
> >тем мягче и шелковистее будут твои волосы.
> Зачем в заду волосы? :)
Не, волосы будут на голове, а вот возвращать надо взад.
Вот такая интересная связь.
--
С уважением, LVT.
Japp (2004-12-08 15:49:00) [9]>Leonid Troyanovsky (08.12.04 15:34) [3]
>Т.е., он туда (в ДЛЛ) попал по злому умыслу?
Программирование это вообще метод внесения ошибок :)
Но умысел как раз добрый - вынести часть интерфейса в подключаемую ДЛЛ-ку
>Однако, чем быстрее ты вернешь его взад,
>тем мягче и шелковистее будут твои волосы.
Зачем в заду волосы? :)
Leonid Troyanovsky (2004-12-08 15:34:00) [10]
> Japp (08.12.04 14:25)
> Нехочется переносить код из ДЛЛ внутрь основной проги...
Т.е., он туда (в ДЛЛ) попал по злому умыслу?
Мои сочувствия.
Однако, чем быстрее ты вернешь его взад,
тем мягче и шелковистее будут твои волосы.
--
С уважением, LVT.
Japp (2004-12-08 15:16:00) [11]Я имел ввиду внешние проявления - например отображение Ворда
внутри своего окна, но может я ошибаюсь ... :)
Digitman (2004-12-08 14:53:00) [12]просто сделай создаваемое в ДЛЛ окно дочерним по отношению к "главному окну"
> Примерно как это делается в COM-технологии
что-то не припомню, чтобы COM-технология имела прямое отношение к манипуляции окнами .. у COM-технологии - иные задачи