| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Получение скрина окна и HDC. |
| Автор: IWTK 29.4.2010, 18:01 |
| Привет всем. Мне нужно сделать скриншот чужого окна. Получить его DC, и потом коечто нарисовать на этом окне. Получаю скрин при помощи PrintWindow. Но если писать так PrintWindow(HWND, DC, 0); то не работает. DC я не могу получить. А если вот так PrintWindow(HWND, image1.canvas.handle, 0); то работает хорошо. решил воспользоваться для рисования на чужом окне функцией StretchBLt, но еще толком сней не разобрался. Если можно так. помогите мне получить dc окна. и потом на нем нарисовать картинку. Текс без проблем рисуеться а вот как картинку нарисовать я почти не понял. GETDC и GETWINDOWDC получает, но если окно перекрыто другим чем нибудь, то это плохо. Вот принтвиндов получает даже если оно и перекрыто. |
| Автор: IWTK 29.4.2010, 18:31 |
| Ребята что то я затупил по полной, а мб и нет. Ведь если окна не видно зачем рисовать тогда? Правильно не надо. Так что с DC я справился сам. Прошу Вас помочь в оставшемся вопросе. Как нарисовать картинку допустим из image1 на чудом окне? |
| Автор: Proxin 29.4.2010, 19:02 |
| bitblt и stretchblt. ищи в msdn описание этих функций. |
| Автор: IWTK 29.4.2010, 19:16 |
| а разве при помощи bitblt что нибудь на другом окне можно нарисовать? а есть еще какие нибудь функции? |
| Автор: IWTK 29.4.2010, 19:45 | ||
| И если не трудно то помогите еще с этой функцией. Так вот она объявлена
то по завершению image1 пустой. почему через printwindow ничего не помещаеться в dc??? |
| Автор: Amphiluke 29.4.2010, 20:36 | ||
| Какие-то совершенно излишние манипуляции, IMHO. Почему бы не
? |
| Автор: IWTK 30.4.2010, 13:06 | ||||||
Так мы просто получим скрин окна, которого нам надо. Может кто нибудь объяснить почему не работает если подставить делать вот так
DC в чебя ничего не берет. а может и берет да я не могу достать. подскажите. МБ я туплю сейчас, ведь printwindow предназначена для снятия скриншотов, а не получения DC. Наверное поэтому и не работатет. Спасибо всем кто хоть чем то помог. Почти Во всем разобрался. Может ли кто-нибудь выложить описание флагов для printwindow и bitblt? на русском. srccopy, srcpaint и т.д. |
| Автор: Maks1509 2.5.2010, 17:13 | ||
| IWTK А ты точно уверен что HWND окна тот, который тебе требуется? Где код получения DC?
|