Поделиться через


CDC::StretchBlt

Копирует точечный рисунок из исходного прямоугольника в прямоугольник назначения, при необходимости растягивая или сжимая точечный рисунок в соответствии с размерами прямоугольника назначения.

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

Параметры

  • x
    Указывает x-координату (в логических единицах) левого верхнего угла прямоугольника назначения.

  • y
    Указывает y-координату (в логических единицах) левого верхнего угла прямоугольника назначения.

  • nWidth
    Задает ширину прямоугольника назначения (в логических единицах).

  • nHeight
    Задает высоту прямоугольника назначения (в логических единицах).

  • pSrcDC
    Задает контекст исходного устройства.

  • xSrc
    Указывает x-координату (в логических единицах) левого верхнего угла исходного прямоугольника.

  • ySrc
    Указывает y-координату (в логических единицах) левого верхнего угла исходного прямоугольника.

  • nSrcWidth
    Задает ширину исходного прямоугольника (в логических единицах).

  • nSrcHeight
    Задает высоту исходного прямоугольника (в логических единицах).

  • dwRop
    Определяет подлежащую выполнению растровую операцию. Коды растровых операций определяют, как GDI сочетает цвета в операциях вывода, где используется текущая кисть, возможный исходный точечный рисунок и точечный рисунок назначения. Этот параметр может иметь одно из следующих значений:

    • BLACKNESS   Делает весь вывод черным.

    • DSTINVERT   Инвертирует цвета точечного рисунка назначения.

    • MERGECOPY   Объединяет узор и исходный точечный рисунок с помощью оператора логического И.

    • MERGEPAINT   Объединяет инвертированный исходный точечный рисунок с точечным рисунком назначения с помощью оператора логического ИЛИ.

    • NOTSRCCOPY   Копирует инвертированный исходный точечный рисунок в место назначения.

    • NOTSRCERASE   Инвертирует результат объединения исходного и конечного точечных рисунков с помощью оператора логического ИЛИ.

    • PATCOPY   Копирует узор в точечный рисунок назначения.

    • PATINVERT   Объединяет точечный рисунок назначения с узором с помощью логического оператора XOR.

    • PATPAINT   Объединяет инвертированный исходный точечный рисунок с узором с помощью оператора логического ИЛИ. Объединяет результат операции с точечным рисунком назначения с помощью оператора логического ИЛИ.

    • SRCAND   Объединяет пиксели исходного и конечного точечных рисунков с помощью оператора логического И.

    • SRCCOPY   Копирует инвертированный исходный точечный рисунок в точечный рисунок назначения.

    • SRCERASE   Инвертирует конечный точечный рисунок и объединяет результат с исходным точечным рисунком с помощью оператора логического И.

    • SRCINVERT   Объединяет пиксели исходного и конечного точечных рисунков с помощью логического оператора XOR.

    • SRCPAINT   Объединяет пиксели исходного и конечного точечных рисунков с помощью оператора логического ИЛИ.

    • WHITENESS   Делает весь вывод белым.

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

Ненулевое значение, если точечный рисунок рисуется, в противном случае — 0.

Заметки

Эта функция использует режим растягивания контекста устройства назначения (задается SetStretchBltMode), чтобы определить, как необходимо растянуть или сжать точечный рисунок.

Функция StretchBlt перемещает точечный рисунок с исходного устройства источника, определяемого pSrcDC, на устройство назначения, представленное объектом контекста устройства, чья функция-член вызывается. Параметры xSrc, ySrc, nSrcWidth и nSrcHeight определяют верхний левый угол и размеры исходного прямоугольника. Параметры x, y, nWidth, и nHeight определяют верхний левый угол и размеры прямоугольника назначения. Растровая операция, указанная dwRop, определяет способ объединения исходного точечного рисунка и точек, уже находящихся на устройстве назначения.

Функция StretchBlt создает зеркальное изображение точечного рисунка, если знаки параметров nSrcWidth и nWidth или nSrcHeight и nHeight отличаются. Если отличаются знаки параметров nSrcWidth и nWidth, эта функция создает зеркальное изображение точечного рисунка по оси X. Если отличаются знаки параметров nSrcHeight и nHeight эта функция создает зеркальное изображение точечного рисунка по оси Y.

Функция StretchBlt растягивает или сжимает исходный точечный рисунок, а затем копирует результат в место назначения. Если узор необходимо объединить с результатом, он не объединяется, пока растянутый исходный точечный рисунок не будет скопирован в место назначения. Если используется кисть, это будет кисть, выбранная в контексте устройства назначения. Координаты назначения преобразуются в зависимости от контекста устройства назначения; исходные координаты преобразуются в зависимости от контекста исходного устройства.

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

Если StretchBlt необходимо преобразовать монохромный точечный рисунок в цвет, белые биты (1) задаются в качестве значения цвета фона, а черные биты (0) — в качестве цвета переднего плана. Для преобразования цветов в монохромный режим определяются пиксели, сопоставляющие цвет фона белому (1), а все остальные пиксели становятся черными (0). Используются цвета переднего плана и фона контекста устройства назначения с цветом.

Не все устройства поддерживают функцию StretchBlt. Чтобы определить, поддерживает ли устройство StretchBlt, необходимо вызвать функцию-член GetDeviceCaps с индексом RASTERCAPS и проверить возвращаемое значение для флажка RC_STRETCHBLT.

Требования

Заголовок: afxwin.h

См. также

Ссылки

Класс CDC

Диаграмма иерархии

CDC::BitBlt

CDC::GetDeviceCaps

CDC::SetStretchBltMode

StretchBlt