![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
GP1000 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 2.5.2008 Репутация: нет Всего: нет |
С определенной частотой рисую окно с помощью PrintWindow(). Затем сохраняю получившиеся изображение в файл . Для некоторых окошек иногда приходят рисунки с неотрисованной (черной )внутренностью . То есть видно заголовок и все остальное в окне а содержимое поля не отрисовывается . Для примера стандартный блокнот - видно заголовок ,меню , а вместо поля с текстом черный квадрат . При увеличении частоты количество "черных кадров" возрастает. Создается впечатление , что при отрисовке в контекст устройства с помощью PrintWindow(),посылаемое сообщение о отрисовке просто не доходит до некоторых элементов внутри окна и в итоге функция возвращает такой вот неполный контекст . Может кто сталкивался с такой проблемой ? Интересует вариант именно с PrintWindow так как нужно рисовать неактивные окна . |
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 8 Всего: 26 |
Посмотри WM_PRINT там по-моему передаются какие-то флаги. Попробуй обрабатывать сам в обход PrintWindow. -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
GP1000 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 2.5.2008 Репутация: нет Всего: нет |
Спасибо за совет ,
но с использованием WM_PRINT в DC возвращается просто черная битмапина вместо изображения окна. Здается мне что PrintWindow как то по другому захватывает изображение окна нежели отсылкой WM_PRINT c подготовленным DC . И еще вопрос . если мы посылаем окну сообщение WM_PRINT значит где то в теле оконной процедуры должен стоять его обработчик ?Часто ли мы создавая свои программы пишем обработчик для этого сообщения ?? ![]() |
|||
|
||||
GP1000 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 2.5.2008 Репутация: нет Всего: нет |
Добавлю
В принципе PrintWindow устраивает полностью, единственное но - с увеличением частоты увеличиваются "бракованные " кадры . Можно захватывать изображение с малой частотой , а можно и вообще только по след условию если нужное окно перекрыли другим окном . Кажется есть способ с установкой хука на определенные события (какие?) , но если это чужой процесс то нужно еще и думать о том как внедрить свою dll в процесс . Может есть более простые пути? Может кто сталкивался?? |
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 8 Всего: 26 |
GP1000, ты в какой оси программируешь?
-------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
GP1000 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 2.5.2008 Репутация: нет Всего: нет |
Windows вообще то
![]() |
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 8 Всего: 26 |
GP1000,
![]() -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
GP1000 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 2.5.2008 Репутация: нет Всего: нет |
Ну судя из MSDN
использую Windows XP ![]() Добавлено через 2 минуты и 41 секунду Это требования к PrintWindow |
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 8 Всего: 26 |
Это понятно, но если бы ты писал в Висте было бы все намного проще сделать используя DWM API
![]() Это сообщение отредактировал(а) Andrey44 - 13.3.2009, 07:53 -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |