Visual C++. Описание стандартных классов - BitBlt

ОГЛАВЛЕНИЕ


BitBlt

BOOL BitBlt(int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, DWORD dwRop);

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

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

Аргументы

  • x - определяет горизонтальную координату верхнего левого угла прямоугольника в который будет копироваться битовый образ (области вывода).
  • y - определяет вертикальную координату верхнего левого угла прямоугольника в который будет копироваться битовый образ.
  • nWidth - определяет ширину (в логических единицах) прямоугольника в который будет копироваться битовый образ.
  • nHeight - определяет высоту (в логических единицах) прямоугольника в который будет копироваться битовый образ.
  • pSrcDC - указатель на объект класса CDC, определяющий контекст устройства из которого производится копирование битового образа. Если значение аргумента dwRop определяет растровую операцию для которой не требуется источника, этот аргумент должен иметь значение NULL.
  • xSrc - определяет горизонтальную координату верхнего левого угла прямоугольника из которого будет копироваться битовый образ.
  • ySrc - определяет вертикальную координату верхнего левого угла прямоугольника из которого будет копироваться битовый образ.
  • dwRop - определяет растровую операцию, которую необходимо выполнить. Коды растровых операций определяют каким образом GDI должен комбинировать цвета при выполнении операции, включающей в себя текущую кисть, возможно, исходный битовый образ и результирующий битовый образ. Данный аргумент может принимать следующие значения:
            BLACKNESS - закрашивает всю область вывода в черный цвет;
            DSTINVERT - инвертирует битовый образ, расположенный в области вывода;
            MERGECOPY - комбинирует образец и исходный битовый образ с использованием логического оператора И;
            MERGEPAINT - комбинирует инвертированный битовый образ, расположенный в области вывода, и исходный битовый образ с использованием логического оператора ИЛИ;
            NOTSRCCOPY - копирует инвертированный исходный битовый образ в область вывода;
            NOTSRCERASE - инвертирует результат логического оператора ИЛИ между инвертированным битовым образом, расположенным в области вывода, и исходным битовым образом;
            PATCOPY - заполняет область вывода с использованием образца;
            PATINVERT - комбинирует битовый образ, расположенный в области вывода, и исходный битовый образ с использованием логического оператора ИСКЛЮЧАЮЩЕГО ИЛИ;
            PATPAINT - комбинирует образец и инвертированный исходный битовый образ с использованием логического оператора ИЛИ. Результат этой операции комбинируется с битовым образом, расположенным в области вывода, с использованием логического оператора ИЛИ;
            SRCAND - комбинирует элементы изображения битового образа, расположенного в области вывода, и исходного битового образа с использованием логического оператора И;
            SRCCOPY - копирует исходный битовый образ в область вывода;
            SRCERASE - инвертирует битовый образ, расположенный в области вывода, и комбинирует результат с исходным битовым образом с использованием логического оператора И;
            SRCINVERT - комбинирует битовый образ, расположенный в области вывода, и исходный битовый образ с использованием логического оператора ИСКЛЮЧАЮЩЕГО ИЛИ;
            SRCPAINT - комбинирует элементы изображения битового образа, расположенного в области вывода, и исходного битового образа с использованием логического оператора ИЛИ;
            WHITENESS - закрашивает всю область вывода в белый цвет.

Описание

Копирует битовый образ из исходного контекста устройства в текущий контекст устройства. Приложение может выравнивать окна или их рабочие области по границе байтов для гарантии того, что функция BitBlt будет работать с прямоугольниками, выровненными по границам байт. (Для этого необходимо установить флаги CS_BYTEALIGNWINDOW или CS_BYTEALIGNCLIENT при регистрации класса окна.) Работа функции BitBlt с прямоугольниками, выровненными по границам байт, происходит намного быстрее, чем с прямоугольниками, не выровненными по границам байт. При необходимости задания стилей класса, обеспечивающих работу с прямоугольниками, выровненными по границам байт, в пользовательском контексте устройства, следует самостоятельно зарегистрировать класс окна, не полагаясь в этом на библиотеку MFC. Для этого используется глобальная функция AfxRegisterClass. Интерфейс графических устройств Windows преобразует аргументы nWidth и nHeight, используя контекст устройства в который производится копирование битового образа. Если метрики устройств не совпадают, GDI вызывает функцию Windows StretchBlt для сжатия или растяжения исходного битового образа. Если битовый образ в области вывода, исходный битовый образ и образец имеют различный формат цвета, функция BitBlt преобразует форматы исходного битового образа и образца к формату устройства вывода. При преобразовании используются как фоновый, так и основной битовые образы. При преобразовании монохромного битового образа в цветной функция BitBlt присваивает белому биту (1) цвет фона, а черному биту (0) основной цвет. При этом используются основной цвет (Foreground) и цвет фона (Background). При преобразовании цветного битового образа в монохромный функция BitBlt преобразует элементы изображения, имеющие цвет фона, в белые, а все остальные - в черные элементы изображения. Не все устройства могут работать с функцией BitBlt. Чтобы проверить возможность работы конкретного устройства с функцией BitBlt вызовите функцию GetDeviceCaps с аргументом RASTERCAPS.