Доброго времени суток.
Есть такая проблема: мне в моем приложении нужно получать картинку клиенткой области окна internet explorer'а, но само окно IE должно быть спрятано, ну или по крайней мере, не видимо на экране.
Какие есть предложения по реализации?
p.s. WM_PRINT и WM_PRINTCLIENT не работают

(
Здравствуйте, glalexey, Вы писали:
G>Доброго времени суток.
G>Есть такая проблема: мне в моем приложении нужно получать картинку клиенткой области окна internet explorer'а, но само окно IE должно быть спрятано, ну или по крайней мере, не видимо на экране.
G>Какие есть предложения по реализации?
А если попробовать сначала найти то окно (FindWindow(Ex)), потом узнать его размеры (GetClientRect), а потом через GetPixel получить все точки? Только вот интересно, сильно будет тормозить (если такое сработает).
... << RSDN@Home 1.1 beta 1 >>
Здравствуйте, Alexmoon, Вы писали:
A>Здравствуйте, glalexey, Вы писали:
G>>Доброго времени суток.
G>>Есть такая проблема: мне в моем приложении нужно получать картинку клиенткой области окна internet explorer'а, но само окно IE должно быть спрятано, ну или по крайней мере, не видимо на экране.
G>>Какие есть предложения по реализации?
A>Найти или получить дескриптор необходимого тебе окна и получить его контекст. Пробуй. Если будет не все гладко, буду думать дальше. Извини самому некогда проверять. Своей работы хватает.
Пробовал... Работает но не так как надо... Я получаю контекст (HDC) нужного мне окна и копирую его содержимое в свой HDC. Проблема в том, что HDC окна содержит актуальные данные только когда окно фактически нарисовано на экране. Даже если часть окна находится вне экрана, то это часть в контексте окна не прорисована
+ Я даже пробовал создавать окно на другом десктопе и тоже не работает.
Здравствуйте, glalexey, Вы писали:
G>Пробовал... Работает но не так как надо... Я получаю контекст (HDC) нужного мне окна и копирую его содержимое в свой HDC. Проблема в том, что HDC окна содержит актуальные данные только когда окно фактически нарисовано на экране. Даже если часть окна находится вне экрана, то это часть в контексте окна не прорисована
G>+ Я даже пробовал создавать окно на другом десктопе и тоже не работает.
Возможно ты и прав. Попробовать нужно. Не готов так тебе сходу сказать. Ну если без испытаний, то с альтернативным десктопом я бы точно не пробовал. Из того, что сразу приходит на ум, если действительно не легитивен копируемый контекст, то я бы попробовал CoCreateInstance(IWebbrowser2), а потом GetURL и QueryInterface(IHTMLDocument2), ну и потом что ли GetContent(), если таковой метод есть любой другой, который может передать content в виде готового контекста.
Код естественно псевдо. В хелп не смотрю, а просто пытаюсь передать идею. Тот кто ищет, тот всегда найдет.
Удачи. Возможно я и не совсем прав, но я еще в фоне подумаю, если чего придумаю то напишу.
Вообще имею устойчивое мнение по поводу того, что практически любой вопрос имеет на себя ответ проще чем мы можем себе представить. В этом и заключается смысл поиска истины.
Здравствуйте, Alexmoon, Вы писали:
A>Здравствуйте, glalexey, Вы писали:
G>>Пробовал... Работает но не так как надо... Я получаю контекст (HDC) нужного мне окна и копирую его содержимое в свой HDC. Проблема в том, что HDC окна содержит актуальные данные только когда окно фактически нарисовано на экране. Даже если часть окна находится вне экрана, то это часть в контексте окна не прорисована
G>>+ Я даже пробовал создавать окно на другом десктопе и тоже не работает.
A>Возможно ты и прав. Попробовать нужно. Не готов так тебе сходу сказать. Ну если без испытаний, то с альтернативным десктопом я бы точно не пробовал. Из того, что сразу приходит на ум, если действительно не легитивен копируемый контекст, то я бы попробовал CoCreateInstance(IWebbrowser2), а потом GetURL и QueryInterface(IHTMLDocument2), ну и потом что ли GetContent(), если таковой метод есть любой другой, который может передать content в виде готового контекста.
A>Код естественно псевдо. В хелп не смотрю, а просто пытаюсь передать идею. Тот кто ищет, тот всегда найдет.
A>Удачи. Возможно я и не совсем прав, но я еще в фоне подумаю, если чего придумаю то напишу.
A>Вообще имею устойчивое мнение по поводу того, что практически любой вопрос имеет на себя ответ проще чем мы можем себе представить. В этом и заключается смысл поиска истины.
Нашел, спасибо за помощь. Ша попробую... Там есть IHTMLPainer::Draw — он умеет рисовать и в HDC и даже на поверхности DirectDraw! Супер.