Функция 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 |
Нет |
Замечания по платформе |
Не имеется |