Функция BitBlt

Функция BitBlt выполняет передачу битовых блоков данных о цвете, соответствующих прямоугольнику пикселей из заданного исходного контекста устройства в целевой контекст устройства.

Синтаксис

BOOL BitBlt(
  HDC hdcDest, // дескриптор целевого DC
  int nXDest,  // x-коорд. левого верхнего угла целевого прямоугольника
  int nYDest,  // y-коорд. левого верхнего угла целевого прямоугольника
  int nWidth,  // ширина целевого прямоугольника
  int nHeight, // высота целевого прямоугольника
  HDC hdcSrc,  // дескриптор исходного DC
  int nXSrc,   // x-коорд. левого верхнего угла исходного прямоугольника
  int nYSrc,   // y-коорд. левого верхнего угла исходного прямоугольника
  DWORD dwRop  // код растровой операции
);

Параметры

hdcDest

[in] Дескриптор целевого контекста устройства.

nXDest

[in] Устанавливает x-координату, в логических единицах измерения, левого верхнего угла целевого прямоугольника.

nYDest

[in] Устанавливает y-координату, в логических единицах измерения, левого верхнего угла целевого прямоугольника.

nWidth

[in] Устанавливает ширину, в логических  единицах измерения, исходного и целевого прямоугольников.

nHeight

[in] Устанавливает высоту, в логических  единицах измерения, исходного и целевого прямоугольников.

hdcSrc

[in] Дескриптор источникового контекста устройства.

nXSrc

[in] Устанавливает x-координату, в логических  единицах измерения, левого верхнего угла исходного прямоугольника.

nYSrc

[in] Устанавливает y-координату, в логических  единицах измерения, левого верхнего угла исходного прямоугольника.

dwRop

[in] Устанавливает код растровой операции. Эти коды определяют, как данные о цвете для исходного прямоугольника должны быть объединены с данными о цвете для целевого прямоугольника, чтобы достигнуть конечного цвета.

Список ниже показывает некоторые общие коды растровых операций.

Значение Описание
BLACKNESS Заполняет целевой прямоугольник, используя цвет, связанный с индексом 0 в физической палитре. (Этот цвет является черным для заданной по умолчанию физической палитры.)
CAPTUREBLT Windows 98/Me, Windows 2000/XP: Включает любые окна, которые наслоены поверх вашего окна в результирующем изображении. По умолчанию, изображение содержит только ваше окно. 
DSTINVERT Инвертирует целевой прямоугольник.
MERGECOPY Объединяет цвета исходного прямоугольника с кистью в текущий момент выбранной в hdcDest, при помощи использования булева оператора И (AND).
MERGEPAINT Объединяет цвета инвертированного исходного прямоугольника с цветами целевого прямоугольника при помощи использования булева оператора ИЛИ (OR).
NOMIRRORBITMAP Windows 98/Me, Windows 2000/XP: Препятствует точечному рисунку быть зеркалируемым.
NOTSRCCOPY Копирует инвертированный исходный прямоугольник в целевой.
NOTSRCERASE Комбинирует цвета исходных и целевых прямоугольников при помощи использования булева оператора ИЛИ (OR) и затем инвертирует получающийся в результате цвет.
PATCOPY Копирует кисть, в текущий момент выбранную в hdcDest, в целевой точечный рисунок.
PATINVERT Комбинирует цвета кисти, в текущий момент выбранной в hdcDest, с цветами целевого прямоугольника при помощи использования булева оператора исключающее ИЛИ (XOR).
PATPAINT Комбинирует цвета кисти, в текущий момент выбранной в hdcDest, с цветами инвертированного исходного прямоугольника при помощи использования булева оператора ИЛИ (OR). Результаты этой операции объединяются с цветами целевого прямоугольника при помощи использования булева оператора ИЛИ (OR).
SRCAND Комбинирует цвета исходных и целевых прямоугольников при помощи использования булева оператора И (AND).
SRCCOPY Копирует исходный прямоугольник непосредственно в целевой прямоугольник.
SRCERASE Комбинирует инвертированные цвета целевого прямоугольника с цветами исходного прямоугольника при помощи использования булева оператора И (AND).
SRCINVERT Комбинирует цвета источникового и целевого прямоугольников при помощи использования булева оператора исключающее ИЛИ (XOR).
SRCPAINT Комбинирует цвета источникового и целевого прямоугольников при помощи использования булева оператора ИЛИ (OR).
WHITENESS Заполняет целевой прямоугольник, используя цвет, связанный с индексом 1 в физической палитре. (Этот цвет является белым для заданной по умолчанию физической палитры.)
 

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

Если функция завершается успешно, величина возвращаемого значения - не нуль.

Если функция завершается с ошибкой, величина возвращаемого значения - нуль.

Windows NT/2000/XP: Чтобы получать дополнительные сведения об ошибке, вызовите GetLastError.

Замечания

Функция BitBlt делает отсечение по границам только в целевом контексте устройства (DC).

Если в исходном контексте устройства действует вращение или преобразование сдвига фрагмента изображения, BitBlt  возвращает ошибку. Если в исходном контексте устройства встречаются другие преобразования   (а преобразование соответствия   в целевом контексте устройства не  действует ), прямоугольник в целевом контексте устройства растягивается, сжимается или вращается, по мере необходимости.

Если цветовые форматы источниковых и целевых контекстов устройства не соответствуют, функция BitBlt преобразует исходный цветовой формат, чтобы он соответствовал целевому формату.

Когда фиксируется расширенный метафайл, происходит ошибка, если исходный контекст устройства идентифицирует контекст устройства расширенного метафайла.

Не все устройства поддерживают функцию BitBlt. Для подробной информации, см. RC_BITBLT характеристика растровой записи в функции GetDeviceCaps, а так же в следующих функциях: MaskBlt, PlgBlt и StretchBlt.

BitBlt возвращает ошибку, если источниковый и целевой контексты устройства обозначают различные устройства. Чтобы пересылать данные между контекстами устройства (DC) для разных устройств, преобразуйте точечный рисунок в аппаратно-независимый растровый формат (DIB) при помощи вызова функции GetDIBits. Чтобы показать на экране аппаратно-независимый растровый формат (DIB) для второго устройства, вызовите функцию SetDIBits или StretchDIBits.

ICM: Управление цветом не выполняется тогда, когда происходит копирование или пересылка массива данных.

Код примера

 Пример смотри в статье Захват изображения.

Смотри также 

Обзор Точечные рисунки, Функции, используемые точечными рисунками,  GetDeviceCaps, GetDIBits, MaskBlt, PlgBlt, SetDIBits, StretchBlt, StretchDIBits

Размещение и совместимость BitBlt

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

Gdi32.lib

Заголовочный файл

 

- объявлено в

Wingdi.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz