Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Быстрое копирование изображения

41K
05 октября 2008 года
Engineer9
4 / / 29.09.2008
Подскажите, пожалуйста.
Как максимально быстрым способом перенести изображение из Bitmap на Canvas компонента PaintBox. При переносе края изображения могут отсекаться.

У меня в приложении изображение из Bitmap должно перемещаться за курсором мыши. При этом происходит сильное мерцание, что "некрасиво" и быстро утомляет глаза.
3.7K
05 октября 2008 года
0nni
326 / / 24.06.2008
BitBlt() - для копирования - быстрее помоему ничего нет, но в твоем случае советую использовать в сочетании со ScrollDC()
1
06 октября 2008 года
kot_
7.3K / / 20.01.2000
и не забыть DoubleBuffer установить в true для формы.
41K
06 октября 2008 года
Engineer9
4 / / 29.09.2008
Использование двойной буферизации практически сняло проблему мерцания.

Что касается BitBlt(), то здесь появилась проблема получения контекстов устройств:
Bitmap->Canvas->Handle и PaintBox->Canvas->Handle результата не дает.

Кто знает, откуда получить(или, может, как создать) HDC для графических объектов таких как Bitmap, PaintBox?
3.7K
06 октября 2008 года
0nni
326 / / 24.06.2008
Так если не путаю
 
Код:
cdc = CreateCompatibleDC(PaintBox->Canvas->Handle);//Создаем совместимый контекст
SelectObject(cdc, Bitmap.Handle);
BitBlt(PaintBox->Canvas->Handle, ....., cdc, ...., SRCCOPY);
DeleteObject(cdc);
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог