Функция 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 |