Здравствуйте, 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?) ?
Есть подозрение, что там буду изобретать велосипед.