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