Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2010, 14:28   #1
snow_max
 
Регистрация: 06.02.2010
Сообщений: 3
По умолчанию Отрисовка в окне до вызова ReleaseDC

Снимаю скриншоты с окна часто (через каждые 0.1 сек) и, затем, распознаю изображение. В самом окне печатается текст, который, как раз, и надо распознать, и есть примитивная анимация. Примерно такая же, как при копировании файлов посредством Windows Explorer, где летят листики из папки в папку.

Съем скриншота делается так:

В цикле (каждые 0.1 сек):

Код:
HDC hdcWnd = GetWindowDC(hWnd); // A
	HDC newDC = CreateCompatibleDC(hdcWnd);
	HBITMAP bmp = CreateCompatibleBitmap(hdcWnd,imgWidth,imgHeight);
	SelectObject(newDC,bmp);
	ReleaseDC(hWnd,hdcWnd); // B
	BOOL getWndResult = PrintWindow(hWnd,newDC,0);
И вот в чем проблема. Когда моя программа работает, то анимация портится. После нее остается грязь в окне, т.е. кое-что она не может стереть за собой. Если окно минимизировать и опять восстановить, то грязь исчезает.

Это происходит из-за того, что в момент отрисовки анимации на экране HDC hdcWnd занят мною. Т.е. исполнение программы находится между строчками A и B. Вопрос номер 1: прав ли я в этом?

Вопрос номер 2: можно ли это как-то побороть и, если да, то как?

Спасибо.

Последний раз редактировалось MaTBeu; 15.02.2010 в 15:21.
snow_max вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция обратного вызова и таймер на WinApi flug Win Api 4 17.09.2009 16:06
Макрос для вызова файла! SStone Microsoft Office Excel 3 02.03.2009 19:58
Отрисовка компонентов Dr.Badnezz Компоненты Delphi 1 04.01.2009 16:50
Отрисовка CheckListBox. NikLik Компоненты Delphi 0 21.09.2008 21:58
блокировка вызова 2-го экземпляра формы из dll Roof Общие вопросы Delphi 6 27.08.2008 01:03