Здавалка
Главная | Обратная связь

BOOL CDC::BitBlt(int x, int у, int nWidth, int nHeight,



CDC* pSrcDC, int ySrc, DWORD dwRop)

Параметр dwRopопределяет растровую операцию, используемую при копировании битового массива из контекста устройства, заданного параметром pSrcDC. в область, задаваемую параметрами х, у, nWidth и nHeight. Параметры xSrcи ySrcзадают верхний левый угол области контекста устройства источника, который и определяет копируемый битовый массив. Для операций, не требующих битового массива в качестве источника, параметр pSrcDCдолжен быть равен NULL. Возможно использование следующих растровых операций:

· BLACKNESS – тo же, что и для функции PatBlt;

· DSTINVERT – тo же, что и для функции PatBlt;

· MERGECOPY – комбинирование текущего заполнения с текущей кистью при помощи оператора AND;

· MERGEPAINT – комбинирование инвертированного битового массива с текущим заполнением при помощи оператора OR;

· NOTSRCCOPY – копирование инвертированного битового массива;

· NOTSRCERASE – инвертирование результата комбинирования текущего заполнения с битовым массивом при помощи оператора OR

· PATCOPY – тo же, что и для функции PatBlt;

· PATINVERT – тo же, что и для функции PatBlt

· PATPAINT – тo же, что и для функции PatBlt

· SRCAND – комбинирование текущего заполнения и битового массива при помощи операции AND;

· SRCCOPY – заполнение заданной области битовым массивом;

· SRCERASE – комбинирование битового массива и инвертированного текущего заполнения при помощи операции AND;

· SRCINVERT – комбинирование битового массива и текущего заполнения при помощи операции XOR;

· SRCPAINT – комбинирование битового массива и текущего заполнения при помощи операции OR;

· WHITENESS – тo же, что и для функции PatBlt.

 

Данная функция выполняется существенно быстрее для окон, имеющих стили CS_BYTEALIGNWINDOW или CS_BYTEALIGNCLIENT. Для указания этих стилей необходимо зарегистрировать класс окна при помощи глобальной функции MFC ::AfxRegisterWndClass.

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

Не все устройства поддерживают выполнение функции BitBlt. Для определения поддержки необходимо проверить результат вызова функции GetDeviceCaps с параметром RASTERCAPS (флаг RC_BITBLT).

Функция StretchBltкопирует битовый массив одного контекста в другой, изменяя размеры.

BOOL CDC::StretchBlt (int х, int у,

Int nWidth, int nHeight,

CDC* pSrcDC,

Int xSrc, int ySrc,

Int nSrcWidth, int nSrcHeight,

DWORD dwRop)

Функция копирует битовый массив из контекста устройства, заданного параметром pSrcDC, вобласть, задаваемую параметрами х, у, nWidth и nHeight. Параметры xSrcи ySrc определяют верхний левый угол области контекста устройства источника, а параметры nSrcWidthи nSrcHeight размеры битового массива. Если эти параметры имеют разные знаки, то исходный битовый массив отображается зеркально по оси х. Если параметры nHeightи nSrcHeightимеют разные знаки, то исходный битовый массив отображается зеркально по оси у.

При уменьшении или увеличении образа используется режим преобразования, заданный функцией CDC::StretchBltMode.

Параметр dwRopпринимает такие же значения, как и для функции BitBlt, хотя операции, не использующие битовые массивы, для этой функции не имеют смысла – масштабировать будет нечего.

Функция осуществляет масштабирование битового массива в памяти и только потом выполняет копирование (с учетом заданного растрового режима) в контекст устройства.

Не все устройства поддерживают выполнение функции StretchBlt. Для определения поддержки необходимо проверить результат вызова функции GetDeviceCapsс параметром RASTERCAPS (флаг RC_STRETCHBLT).

Следующая функция обеспечивает закрашивание произвольных областей с использованием текущей кисти:







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.