MaskBlt 함수(wingdi.h)

MaskBlt 함수는 지정된 마스크 및 래스터 작업을 사용하여 원본 및 대상 비트맵의 색 데이터를 결합합니다.

구문

BOOL MaskBlt(
  [in] HDC     hdcDest,
  [in] int     xDest,
  [in] int     yDest,
  [in] int     width,
  [in] int     height,
  [in] HDC     hdcSrc,
  [in] int     xSrc,
  [in] int     ySrc,
  [in] HBITMAP hbmMask,
  [in] int     xMask,
  [in] int     yMask,
  [in] DWORD   rop
);

매개 변수

[in] hdcDest

대상 디바이스 컨텍스트에 대한 핸들입니다.

[in] xDest

대상 사각형의 왼쪽 위 모서리에 있는 x 좌표(논리 단위)입니다.

[in] yDest

대상 사각형의 왼쪽 위 모서리에 있는 논리 단위의 y 좌표입니다.

[in] width

대상 사각형 및 원본 비트맵의 너비(논리 단위)입니다.

[in] height

대상 사각형 및 원본 비트맵의 높이(논리 단위)입니다.

[in] hdcSrc

비트맵을 복사할 디바이스 컨텍스트에 대한 핸들입니다. dwRop 매개 변수가 원본을 포함하지 않는 래스터 작업을 지정하는 경우 0이어야 합니다.

[in] xSrc

원본 비트맵의 왼쪽 위 모서리에 있는 x 좌표(논리 단위)입니다.

[in] ySrc

원본 비트맵의 왼쪽 위 모서리에 있는 논리 단위의 y 좌표입니다.

[in] hbmMask

원본 디바이스 컨텍스트의 색 비트맵과 결합된 단색 마스크 비트맵에 대한 핸들입니다.

[in] xMask

hbmMask 매개 변수로 지정된 마스크 비트맵의 가로 픽셀 오프셋입니다.

[in] yMask

hbmMask 매개 변수로 지정된 마스크 비트맵의 세로 픽셀 오프셋입니다.

[in] rop

함수가 원본 데이터와 대상 데이터의 조합을 제어하는 데 사용하는 포그라운드 및 백그라운드 3차 래스터 작업 코드(ROP)입니다. 백그라운드 래스터 작업 코드는 이 값의 상위 단어의 상위 바이트에 저장됩니다. 전경 래스터 작업 코드는 이 값의 상위 단어의 하위 바이트에 저장됩니다. 이 값의 하위 단어는 무시되며 0이어야 합니다. 매크로 MAKEROP4 포그라운드 및 백그라운드 래스터 작업 코드의 이러한 조합을 만듭니다.

이 함수의 컨텍스트에서 전경 및 배경에 대한 설명은 다음 주의 섹션을 참조하세요.

일반적인 래스터 작업 코드(ROP) 목록은 BitBlt 함수를 참조하세요. CAPTUREBLT ROP는 일반적으로 디바이스 컨텍스트를 인쇄하는 데 사용할 수 없습니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다.

설명

MaskBlt 함수는 디바이스 종속 비트맵을 사용합니다.

hbmMask로 지정된 마스크의 값 1은 dwRop으로 지정된 전경 래스터 작업 코드를 해당 위치에 적용해야 했음을 나타냅니다. 마스크의 값이 0이면 dwRop 으로 지정된 백그라운드 래스터 작업 코드가 해당 위치에 적용되어야 했음을 나타냅니다.

래스터 작업에 원본이 필요한 경우 마스크 사각형은 원본 사각형을 덮어야 합니다. 그렇지 않으면 함수가 실패합니다. 래스터 작업에 원본이 필요하지 않은 경우 마스크 사각형은 대상 사각형을 포함해야 합니다. 그렇지 않으면 함수가 실패합니다.

이 함수를 호출할 때 원본 디바이스 컨텍스트에 회전 또는 전단 변환이 적용되는 경우 오류가 발생합니다. 그러나 다른 유형의 변환은 허용됩니다.

원본, 패턴 및 대상 비트맵의 색 형식이 다른 경우 이 함수는 패턴 또는 원본 형식 또는 둘 다를 대상 형식과 일치하도록 변환합니다.

마스크 비트맵이 단색 비트맵이 아니면 오류가 발생합니다.

향상된 메타파일을 기록할 때 원본 디바이스 컨텍스트가 향상된 메타파일 디바이스 컨텍스트를 식별하는 경우 오류가 발생하고 함수가 FALSE를 반환합니다.

모든 디바이스가 MaskBlt 함수를 지원하는 것은 아닙니다. 애플리케이션은 nIndex 매개 변수를 사용하여 GetDeviceCaps 함수를 RC_BITBLT 호출하여 디바이스가 이 함수를 지원하는지 여부를 확인해야 합니다.

마스크 비트맵이 제공되지 않으면 이 함수는 전경 래스터 작업 코드를 사용하여 BitBlt와 똑같이 동작합니다.

Icm: 블릿이 발생할 때는 색 관리가 수행되지 않습니다.

여러 모니터 시스템에서 사용하는 경우 hdcSrchdcDest 는 모두 동일한 디바이스를 참조해야 합니다. 그렇지 않으면 함수가 실패합니다. 다른 디바이스의 DC 간에 데이터를 전송하려면 GetDIBits를 호출하여 메모리 비트맵(호환 가능한 비트맵 또는 DDB)을 DIB로 변환합니다. 두 번째 디바이스에 DIB를 표시하려면 SetDIBits 또는 StretchDIBits를 호출합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 wingdi.h(Windows.h 포함)
라이브러리 Gdi32.lib
DLL Gdi32.dll

추가 정보

Bitblt

비트맵 함수

비트맵 개요

GetDIBits

GetDeviceCaps

PlgBlt

SetDIBits

Stretchblt

StretchDIBits