Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Допустим есть два окна, одно перекрывает другое.. [D6, WinXP]


Окна ©   (2004-07-25 13:34:00) 

Допустим есть два окна, одно (О1) перекрывает другое (О2)..
если взять GetWindowRect окна O2, и посмотреть, то GetWindowRect сохранит все так, как мы видим (то есть сохраняет наложение О1)..

Вопрос: как можно взять чистый "принтскрин" окна О2, не меняя порядок окон.. (пусть она даже модальные... (хотя на самом деле нет))
такое возможно?


dmk   (2004-07-25 23:41:00) [1]

Например: BeginPaint, EndPaint, DrawCaption, DrawEdge и т.д.
Можно отрисовать само окно, а вот с клиентской
областью сложнее. Придется самому содержимое отрисовывать.
Вообще, все самому придется отрисовывать.


Окна   (2004-07-25 21:14:00) [2]

/\
||


Окна   (2004-07-25 14:15:00) [3]

угу.. а как прорисовать его в памяти?

хоть названиие основных функций..


dmk   (2004-07-25 14:06:00) [4]

В памяти изображения окна не существует.
При изменении оно каждый раз перерисовывается
на индивидуальном контексте, который является
частью основного контекста вывода(Desktop).
Поэтому вам необходимо осуществить прорисовку
окна в нужном контексте (напр. памяти) и оттуда
сохранить битмап.


Наверх

Титульная страница Поиск, карта сайта Написать письмо