Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.13;
Скачать: CL | DM;

Вниз

Захват картинки с окна перекрытого другим   Найти похожие ветки 

 
aleksei_c ©   (2006-08-06 18:58) [0]

Привет, ALL!
Как получить картинку с окна чужого приложения (имеем Handle), когда это окно частично или полностью перекрыто другим. Славная функция bitblt честно отдает то, что я и так вижу - окно перекрытое фрагментами других окон, а очень хочется получить его "чистым".
Нежелательно делать SetForegroundWindow(Handle), так как идея не в этом.
Есть рабочие способы?


 
homm ©   (2006-08-06 19:28) [1]

рекурсивно посылать последовательно WM_ERASEBKGND и WM_PAINT от родителя к деткам, передавая в качестве WParam свой DC и настраивая для каждого окна смещение в этом DC с помошью SetWindowOrgEx.

ЗЫ: Не расчитывай что все приложения с радостью отдадут тебе изображения своих окон на не дисплейнцю канву ;)


 
aleksei_c ©   (2006-08-06 21:12) [2]

Спасибо, подойдет.
Осталось разобраться с SetWindowOrgEx :)


 
homm ©   (2006-08-06 23:42) [3]

Если нужен хороший пример реализации ПОДОБНОГО то посмотрите реализацию WndProcTransparent в модуле KOL.PAS


 
Анонимщики ©   (2006-08-07 10:43) [4]

WM_PRINT


 
aleksei_c ©   (2006-08-07 11:18) [5]

WM_PRINT как-то не очень, далеко не все элементы видны, перепробывал различные комбинации параметров :\


 
aleksei_c ©   (2006-08-07 15:36) [6]


> рекурсивно посылать последовательно WM_ERASEBKGND и WM_PAINT
> от родителя к деткам, передавая в качестве WParam свой DC
> и настраивая для каждого окна смещение в этом DC с помошью
> SetWindowOrgEx.
>
> ЗЫ: Не расчитывай что все приложения с радостью отдадут
> тебе изображения своих окон на не дисплейнцю канву ;)


использую EnumChildWindows, как правило сдирается все, кроме полей ввода текста (в аське например), ошибка у меня или действительно - часть окон не желает рисовать на мою канву?


 
homm ©   (2006-08-07 15:52) [7]

> использую EnumChildWindows, как правило сдирается все, кроме
> полей ввода текста (в аське например), ошибка у меня или
> действительно - часть окон не желает рисовать на мою канву?

Большие проблемы с RichEdit. скорее всего для окон ввода в аське используется имеено он.


 
aleksei_c ©   (2006-08-07 16:27) [8]

а есть способ перехватить окно сразу после его стандарного сообщения WM_PAINT, тогда теоретически можно и содрать его HDC? хуки перехватят до, если я правильно понимаю их смысл, или не обязательно?


 
Анонимщики ©   (2006-08-08 18:19) [9]

Еще раз:
http://www.fengyuan.com/article/wmprint.html
И расскажи о результате


 
aleksei_c ©   (2006-09-04 16:53) [10]


> Анонимщики ©   (08.08.06 18:19) [9]
> Еще раз:
> http://www.fengyuan.com/article/wmprint.html
> И расскажи о результате

к сожаленью тут теже проблемы - изображение с окошек аськи, оперы отрисовывается частично...



Страницы: 1 вся ветка

Текущий архив: 2007.05.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.052 c
15-1176232304
ArtemESC
2007-04-10 23:11
2007.05.13
Как выципить мелодию которая подоется на колонки?


15-1176384751
botvin
2007-04-12 17:32
2007.05.13
Менеджер памяти


2-1177081108
ppcumax
2007-04-20 18:58
2007.05.13
Как переносить строки длинее 100 символов?


15-1176453614
Riply
2007-04-13 12:40
2007.05.13
Презумпция невиновности.


2-1176989057
allucard
2007-04-19 17:24
2007.05.13
Есть окно Form2, но его необходимо создать автоматически