Re[3]: Веб-браузер в DirectX окне
От: Cannol  
Дата: 19.07.19 08:54
Оценка:
Здравствуйте, swame, Вы писали:
S>снимать битмапку и передавать в 3D.

Здравствуйте, LuciferSaratov, Вы писали:
LS>табличку уж точно покажет.

Итак, сделал, как упомянуто выше:

1. Создаю новое 2Д окно неотображаемым (SW_HIDE);

2. Туда вывожу работу браузера (вышеупомянутый простейший пример на IWebBrowser2);

3. Захватываю содержимое этого скрытого окна, используя PrintWindow(),
(При этом, когда SW_HIDE, получается просто чёрный экран. И пришлось, перед тем как сграбить, менять окно на SW_SHOWNORMAL, а потом сразу возвращать на SW_HIDE.)

4. Полученный Bitmap загружаю в DirectX окно: m_pRenderTarget->DrawBitmap();
И всё более-менее хорошо, спасибо!

Сейчас возникла другая проблема: а как реализовать мышиные клики от пользователя? Т.е. юзер кликает в том DirectX окне на страничку в браузере, а фактически всего лишь на Bitmap картинку от неё.
Как из этой DirectX-картинки переслать событие клика на само IWebBrowser2 окно ?
Думалось, что я просто определю координаты клика в DirectX окне, и направлю их в то скрытое окно браузера — небось какая-нибудь стандартная функция типа webBrowser2->Navigate(хPos, уPos), но увы, такой не нашлось.

Как тут проще сделать? Или таки придётся мучиться транслированием координат туда-сюда, SendInput(MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTDOWN) вызывать (или SetCursorPos/SendMessage?) ?
Есть подозрение, что там буду изобретать велосипед.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.