다음을 통해 공유


BitBlt 함수(wingdi.h)

BitBlt 함수는 지정된 원본 디바이스 컨텍스트에서 대상 디바이스 컨텍스트로 픽셀 사각형에 해당하는 색 데이터의 비트 블록 전송을 수행합니다.

구문

BOOL BitBlt(
  [in] HDC   hdc,
  [in] int   x,
  [in] int   y,
  [in] int   cx,
  [in] int   cy,
  [in] HDC   hdcSrc,
  [in] int   x1,
  [in] int   y1,
  [in] DWORD rop
);

매개 변수

[in] hdc

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

[in] x

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

[in] y

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

[in] cx

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

[in] cy

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

[in] hdcSrc

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

[in] x1

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

[in] y1

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

[in] rop

래스터 작업 코드입니다. 이러한 코드는 원본 사각형의 색 데이터를 대상 사각형의 색 데이터와 결합하여 최종 색을 달성하는 방법을 정의합니다.

다음 목록에서는 몇 가지 일반적인 래스터 작업 코드를 보여 줍니다.

의미
한밤중
실제 색상표에서 인덱스 0과 연결된 색을 사용하여 대상 사각형을 채웁니다. 기본 실제 색상표의 경우 이 색은 검정입니다.
CAPTUREBLT
결과 이미지의 창 위에 계층화된 창을 포함합니다. 기본적으로 이미지에는 창만 포함됩니다. 이것은 인쇄 디바이스 컨텍스트에는 대개 사용할 수 없습니다.
DSTINVERT
대상 사각형을 반전합니다.
MERGECOPY
부울 AND 연산자를 사용하여 소스 사각형의 색을 현재 hdcDest에서 선택된 브러시와 병합합니다.
MERGEPAINT
부울 OR 연산자를 사용하여 반전된 원본 사각형의 색을 대상 사각형의 색과 병합합니다.
NOMIRRORBITMAP
비트맵이 미러링되지 않도록 합니다.
NOTSRCCOPY
반전된 원본 사각형을 대상으로 복사합니다.
NOTSRCERASE
부울 OR 연산자를 사용하여 원본 및 대상 사각형의 색을 결합한 다음 결과 색을 반전합니다.
PATCOPY
현재 hdcDest에서 선택한 브러시를 대상 비트맵에 복사합니다.
PATINVERT
부울 XOR 연산자를 사용하여 현재 hdcDest에서 선택한 브러시의 색을 대상 사각형의 색과 결합합니다.
PATPAINT
현재 hdcDest에서 선택한 브러시의 색을 부울 OR 연산자를 사용하여 반전된 원본 사각형의 색과 결합합니다. 이 작업의 결과는 부울 OR 연산자를 사용하여 대상 사각형의 색과 결합됩니다.
SRCAND
부울 AND 연산자를 사용하여 원본 및 대상 사각형의 색을 결합합니다.
SRCCOPY
원본 사각형을 대상 사각형에 직접 복사합니다.
SRCERASE
부울 AND 연산자를 사용하여 대상 사각형의 반전된 색을 원본 사각형의 색과 결합합니다.
SRCINVERT
부울 XOR 연산자를 사용하여 원본 및 대상 사각형의 색을 결합합니다.
SRCPAINT
부울 OR 연산자를 사용하여 원본 및 대상 사각형의 색을 결합합니다.
순 결을
실제 색상표에서 인덱스 1과 연결된 색을 사용하여 대상 사각형을 채웁니다. 기본 실제 색상표의 경우 이 색은 흰색입니다.

반환 값

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

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

BitBlt 은 대상 DC에서만 클리핑을 수행합니다.

원본 디바이스 컨텍스트에서 회전 또는 전단 변환이 적용되는 경우 BitBlt 는 오류를 반환합니다. 원본 디바이스 컨텍스트에 다른 변환이 있고 일치하는 변환이 대상 디바이스 컨텍스트에 적용되지 않는 경우 필요에 따라 대상 디바이스 컨텍스트의 사각형이 확장, 압축 또는 회전됩니다.

원본 및 대상 디바이스 컨텍스트의 색 형식이 일치하지 않는 경우 BitBlt 함수는 원본 색 형식을 대상 형식과 일치하도록 변환합니다.

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

모든 디바이스가 BitBlt 함수를 지원하는 것은 아닙니다. 자세한 내용은 GetDeviceCaps 함수의 RC_BITBLT 래스터 기능 항목과 MaskBlt, PlgBltStretchBlt 함수를 참조하세요.

BitBlt은 원본 및 대상 디바이스 컨텍스트가 다른 디바이스를 나타내는 경우 오류를 반환합니다. 다른 디바이스의 DC 간에 데이터를 전송하려면 GetDIBits를 호출하여 메모리 비트맵을 DIB로 변환합니다. 두 번째 디바이스에 DIB를 표시하려면 SetDIBits 또는 StretchDIBits를 호출합니다.

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

예제

다음 코드 예제에서는 BitBlt를 사용하는 방법을 보여 줍니다.

if (!BitBlt(hdcMemDC,
    0, 0,
    rcClient.right - rcClient.left, rcClient.bottom - rcClient.top,
    hdcWindow,
    0, 0,
    SRCCOPY))
{
    MessageBox(hWnd, L"BitBlt has failed", L"Failed", MB_OK);
    goto done;
}

컨텍스트에서 이 예제를 보려면 이미지 캡처를 참조하세요.

요구 사항

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

추가 정보

비트맵 함수

비트맵 개요

GetDIBits

GetDeviceCaps

MaskBlt

PlgBlt

SetDIBits

Stretchblt

StretchDIBits