Шаг 784 - CDC::MaskBlt

BOOL MaskBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, CBitmap& maskBitmap, int xMask, int yMask, DWORD dwRop );

Возвращаемое значение
Отлично от нуля, если функция успешна, иначе 0.

Параметры
x
Определяет логическую x-координату левого верхнего угла прямоугольника адресата.
y
Определяет логическую y-координату левого верхнего угла прямоугольника адресата.
nWidth
Определяет ширину, в логических модулях, прямоугольника адресата и исходного точечного рисунка.
nHeight
Определяет высоту, в логических модулях, прямоугольника адресата и исходного точечного рисунка.
pSrcDC
Идентифицирует контекст устройства с которого точечный рисунок должен быть скопирован. Это должно быть нуль, если dwRop параметр определяет растровую операцию, которая не включает источник.
xSrc
Определяет логическую x-координату левого верхнего угла исходного точечного рисунка.
ySrc
Определяет логическую y-координату левого верхнего угла исходного точечного рисунка.
maskBitmap
Идентифицирует одноцветный точечный рисунок маски, объединенный с цветным точечным рисунком в исходном контексте устройства.
xMask
Определяет горизонтальное смещение пикселя для точечного рисунка маски, определенного maskBitmap параметром.
yMask
Определяет вертикальное смещение пикселя для точечного рисунка маски, определенного maskBitmap параметром.
dwRop
Определяет, приоритетные и фоновые троичные растровые коды операции, которые используються для управления комбинацией данных адресата и источника. Фоновый растровый код операции сохранен в старшем байте старшего слова этого значения, приоритетный растровый код операции сохранен в младшем байте старшего слова значения, младшее слово этого значения игнорируется, и должно быть NULL. Макрокоманда MAKEROP4 создает такие комбинации приоритетных и фоновых растровых кодов операции. См. раздел Замечаний для обсуждения активного режима и фонового режима в контексте этой функции. См. функцию BitBlt для списка общих растровых кодов операции.

Замечания
Объединяет цветные данные для источника и точечных рисунков адресата, использующих данную маску и растровую операцию. Значение 1 в маске, определенной maskBitmap указывает, что приоритетный растровый код операции, определенный dwRop должен примениться в том расположении. Значение 0 в маске указывает, что фоновый растровый код операции, определенный dwRop должен примениться в том расположении. Если растровые операции требуют источника, прямоугольник маски должен покрыть исходный прямоугольник. Если это не происходит, функция будет терпеть неудачу. Если растровые операции не требуют источника, прямоугольник маски должен покрыть прямоугольник адресата. Если это не происходит, функция будет терпеть неудачу.
Если вращение(циклический сдвиг) или преобразование сдвига фрагмента изображения - происходит для исходного контекста устройства, когда эта функция вызвана, ошибка происходит. Однако, другие типы преобразований позволяются.
Если цветные форматы источника, образца, и точечных рисунков адресата отличаются, эта функция преобразовывает образец или исходный формат, или оба, что бы соответствовать формату адресата. Если точечный рисунок маски - не, одноцветный точечный рисунок, ошибка происходит. Когда расширенный метафайл делает запись, ошибка происходит (и функция возвращается 0) если исходный контекст устройства идентифицирует контекст устройства расширенного метафайла. Не все устройства поддерживают MaskBlt. Прикладная программа должна вызвать GetDeviceCaps, чтобы определить, поддерживает ли устройство эту функцию. Если никакой точечный рисунок маски не обеспечен, эта функция ведет себя точно подобно BitBlt, используя приоритетный растровый код операции. Пиксель смещает в карте точечного рисунка маски к сути (0,0) в исходном точечном рисунке контекста устройства. Это полезно для случаев, в которых точечный рисунок маски содержит набор масок, прикладная программа может легко применять любые из них к задаче копирования битов маски, регулируя смещения пикселя и размеры прямоугольника, посланные MaskBlt.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 4.02.2002