Ситуация следующая...
Есть чужое приложение Win32.
Приложение открывается в своём окне (Resizable Dialog).
Исходников данного приложения нет.
Можно ли как-нибудь заставить данное – чужое приложение работать в рамках родного MDI.
Я имею ввиду что делать оно будет то, что и ранее. Вмешиваться в логику работы нет необходимости, вот только оно управляться (open/close) будет другой оболочкой.
Сценарий такой. Нажали на кнопку в MDI, по ней взлетел чужой exe, приаттачился к одному из child и работает как часть этого MDI. По нажатию на Close, child закрывается и чужое приложение умирает тоже.
Заранее спасибо.
Re: как приаттачить чужое WND к своему приложению ?
Здравствуйте, DNR, Вы писали:
DNR>Ситуация следующая... DNR>Есть чужое приложение Win32. DNR>Приложение открывается в своём окне (Resizable Dialog). DNR>Исходников данного приложения нет.
DNR>Можно ли как-нибудь заставить данное – чужое приложение работать в рамках родного MDI.
Смотря что вы имеете под этив в виду.
DNR>Я имею ввиду что делать оно будет то, что и ранее. Вмешиваться в логику работы нет необходимости, вот только оно управляться (open/close) будет другой оболочкой.
Это можно.
DNR>Сценарий такой. Нажали на кнопку в MDI, по ней >взлетел чужой exe,
легко — просто запустите его >приаттачился к одному из child
невозможно, это окно другого процесса.
Обработчик сообщений окна должен быть в том же процессе что и само окно.
Обходится установкой глобальных хуков, но не уверен что вам это нужно.
Или что подразумевается под словами "приаттачился"? >и работает как часть этого MDI.
тоже непонятно, что имеется в виду... > По нажатию на Close, child закрывается и чужое приложение умирает тоже.
легко — закрыть окно и все.
Re[2]: как приаттачить чужое WND к своему приложению ?
bnk> Или что подразумевается под словами "приаттачился"? >>и работает как часть этого MDI. bnk> тоже непонятно, что имеется в виду...
ну я не вдаваясь в подробности хотел сказать, что контекст чужого приложения отображается в одном из child'ов моего MDI.
при этом в чужом приложении всё живое, всё кликабельное всё маргает и светится — всё обрабатывается. Мне нет необходимости лезть во внутрь чужого приложения. просто надо чтобы его контекст отображался в одном из моих child'ов.
bnk> Обходится установкой глобальных хуков, но не уверен что вам это нужно.
Да не совсем то, с хуками я могу делать всё что мне надо с чужим приложением. Но вот загнать его в свой MDI неполучилось.
Возможно ли то чтоя описал и если да, то как?
Re[3]: как приаттачить чужое WND к своему приложению ?
Здравствуйте, DNR, Вы писали:
DNR>ну я не вдаваясь в подробности хотел сказать, что контекст чужого приложения отображается в одном из child'ов моего MDI. DNR>при этом в чужом приложении всё живое, всё кликабельное всё маргает и светится — всё обрабатывается. Мне нет необходимости лезть во внутрь чужого приложения. просто надо чтобы его контекст отображался в одном из моих child'ов.
bnk>> Обходится установкой глобальных хуков, но не уверен что вам это нужно. DNR>Да не совсем то, с хуками я могу делать всё что мне надо с чужим приложением. Но вот загнать его в свой MDI неполучилось.
DNR>Возможно ли то чтоя описал и если да, то как?
Мне на ум приходит такое решение — перехватывать все события по поводу размера от MDI окошка, в которое надо "запихать" внешний диалог, и изменять его размер/позицию соответственно.. Можно наверное извернуться и отсекать его еще соответственно...
Но в общем, IMHO, задача заставить внешний диалог работать как клиентское окно внутри MDI... хм, труднорешаема. Я, по крайней мере, ничего радикально простого присоветовать не в состоянии.
— Express this in one word, please..
— Sabotage! (c)