Функция BitBlt (wingdi.h)
Функция BitBlt выполняет битовую передачу данных цвета, соответствующих прямоугольнику пикселей, из указанного контекста исходного устройства в контекст целевого устройства.
Синтаксис
BOOL BitBlt(
[in] HDC hdc,
[in] int x,
[in] int y,
[in] int cx,
[in] int cy,
[in] HDC hdcSrc,
[in] int x1,
[in] int y1,
[in] DWORD rop
);
Параметры
[in] hdc
Дескриптор контекста целевого устройства.
[in] x
Координата X в логических единицах левого верхнего угла целевого прямоугольника.
[in] y
Координата Y в логических единицах левого верхнего угла целевого прямоугольника.
[in] cx
Ширина (в логических единицах) исходного и целевого прямоугольников.
[in] cy
Высота (в логических единицах) исходного и целевого прямоугольников.
[in] hdcSrc
Дескриптор контекста исходного устройства.
[in] x1
Координата X в логических единицах верхнего левого угла исходного прямоугольника.
[in] y1
Координата Y в логических единицах верхнего левого угла исходного прямоугольника.
[in] rop
Код растровой операции. Эти коды определяют, как данные цвета исходного прямоугольника должны сочетаться с данными цвета для целевого прямоугольника для достижения окончательного цвета.
В следующем списке показаны некоторые распространенные коды растровых операций.
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
BitBlt выполняет обрезку только на целевом контроллере домена.
Если преобразование поворота или сдвига действует в контексте исходного устройства, BitBlt возвращает ошибку. Если в контексте исходного устройства существуют другие преобразования (а соответствующее преобразование не действует в контексте целевого устройства), прямоугольник в контексте конечного устройства растягивается, сжимается или поворачивается по мере необходимости.
Если цветовые форматы исходного и целевого контекстов устройства не совпадают, функция BitBlt преобразует исходный цветовый формат в формат назначения.
При записи расширенного метафайла возникает ошибка, если контекст исходного устройства идентифицирует контекст устройства с расширенным метафайлом.
Не все устройства поддерживают функцию BitBlt . Дополнительные сведения см. в записи RC_BITBLT возможности растра в функции GetDeviceCaps , а также в следующих функциях: MaskBlt, PlgBlt и StretchBlt.
BitBlt возвращает ошибку, если контексты исходного и целевого устройств представляют разные устройства. Чтобы передать данные между контроллерами домена для разных устройств, преобразуйте растровое изображение памяти в DIB, вызвав Метод GetDIBits. Чтобы отобразить DIB на втором устройстве, вызовите SetDIBits или StretchDIBits.
ICM: При возникновении заливки цветом управление цветом не выполняется.
Примеры
В следующем примере кода демонстрируется использование BitBlt.
if (!BitBlt(hdcMemDC,
0, 0,
rcClient.right - rcClient.left, rcClient.bottom - rcClient.top,
hdcWindow,
0, 0,
SRCCOPY))
{
MessageBox(hWnd, L"BitBlt has failed", L"Failed", MB_OK);
goto done;
}
Чтобы увидеть этот пример в контексте, см. статью Запись изображения.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | wingdi.h (включая Windows.h) |
Библиотека | Gdi32.lib |
DLL | Gdi32.dll |