Функция DrawDibDraw (vfw.h)

Функция DrawDibDraw рисует DIB на экране.

Синтаксис

BOOL VFWAPI DrawDibDraw(
  HDRAWDIB           hdd,
  HDC                hdc,
  int                xDst,
  int                yDst,
  int                dxDst,
  int                dyDst,
  LPBITMAPINFOHEADER lpbi,
  LPVOID             lpBits,
  int                xSrc,
  int                ySrc,
  int                dxSrc,
  int                dySrc,
  UINT               wFlags
);

Параметры

hdd

Дескриптор для контроллера домена DrawDib.

hdc

Дескриптор контроллера домена.

xDst

Координата X в MM_TEXT координатах клиента в левом верхнем углу прямоугольника назначения.

yDst

Координата Y в MM_TEXT координатах клиента в левом верхнем углу прямоугольника назначения.

dxDst

Ширина целевого прямоугольника в MM_TEXT координатах клиента. Если значение dxDst равно −1, используется ширина растрового изображения.

dyDst

Высота в MM_TEXT клиентских координатах прямоугольника назначения. Если dyDst равно -1, используется высота растрового изображения.

lpbi

Указатель на структуру BITMAPINFOHEADER, содержащую формат изображения. Таблица цветов для DIB в BITMAPINFOHEADER соответствует формату, а член biHeight должен иметь положительное значение; DrawDibDraw не будет рисовать инвертированные DIB.

lpBits

Указатель на буфер, содержащий битовые биты.

xSrc

Координата X (в пикселях) левого верхнего угла исходного прямоугольника. Координаты (0,0) представляют левый верхний угол растрового изображения.

ySrc

Координата Y в пикселях верхнего левого угла исходного прямоугольника. Координаты (0,0) представляют левый верхний угол растрового изображения.

dxSrc

Ширина исходного прямоугольника (в пикселях).

dySrc

Высота исходного прямоугольника в пикселях.

wFlags

Применимые флаги для рисования. Определены следующие значения.

Значение Значение
DDF_BACKGROUNDPAL Реализует палитру, используемую для рисования в фоновом режиме, оставляя фактическую палитру, используемую для отображения, без изменений. Это значение допустимо, только если DDF_SAME_HDC не задано.
DDF_DONTDRAW Текущее изображение распаковывается, но не рисуется. Этот флаг заменяет флаг DDF_PREROLL .
DDF_FULLSCREEN Не поддерживается.
DDF_HALFTONE Всегда падает dib в стандартную палитру независимо от палитры DIB. Если приложение использует функцию DrawDibBegin , задайте это значение в DrawDibBegin , а не в DrawDibDraw.
DDF_HURRYUP Данные не обязательно должны быть отрисованы (то есть их можно удалить), и DDF_UPDATE не будут использоваться для отзыва этой информации. DrawDib проверяет это значение только в том случае, если оно требуется для построения следующего кадра; В противном случае значение игнорируется. Это значение обычно используется для синхронизации видео и звука. При синхронизации данных приложения должны отправлять изображение с этим значением на случай, если драйверу потребуется буферизировать кадр для распаковки последующих кадров.
DDF_NOTKEYFRAME Данные DIB не являются ключевым кадром.
DDF_SAME_HDC Используйте текущий дескриптор контроллера домена и палитру, связанную с контроллером домена.
DDF_SAME_DRAW Используйте текущие параметры рисования для DrawDibDraw. Используйте это значение, только если lpbi, dxDst, dyDst, dxSrc и dySrc не изменились с момента использования DrawDibDraw или DrawDibBegin. DrawDibDraw обычно проверяет параметры, и если они изменились, DrawDibBegin подготавливает контроллер домена DrawDib к рисованию. Этот флаг заменяет флаги DDF_SAME_DIB и DDF_SAME_SIZE .
DDF_UPDATE Последнее буферизованное растровое изображение необходимо перерисовывать. Если рисование завершается сбоем с этим значением, буферизованное изображение недоступно, и перед обновлением отображения необходимо указать новое изображение.

Возвращаемое значение

Возвращает значение TRUE в случае успешного выполнения или false в противном случае.

Комментарии

DDF_DONTDRAW приводит к распаковке, но не отображению изображения. Последующий вызов DrawDibDraw с указанием DDF_UPDATE отображает изображение.

Если контроллер домена DrawDib не указан внеэкранный буфер, указание DDF_DONTDRAW приводит к немедленному выводу кадра на экран. Последующие вызовы DrawDibDraw , указывающие DDF_UPDATE завершаются ошибкой.

Хотя они задаются в разное время, DDF_UPDATE и DDF_DONTDRAW можно использовать вместе для создания составных изображений за кадром. Когда изображение за кадром завершится, его можно отобразить, вызвав DrawDibDraw.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header vfw.h
Библиотека Vfw32.lib
DLL Msvfw32.dll

См. также раздел

Функции DrawDib