다음을 통해 공유


CBrush::CreateDIBPatternBrush

장치 독립적 비트맵 (DIB)으로 지정 된 패턴 브러시를 초기화 합니다.

BOOL CreateDIBPatternBrush(
   HGLOBAL hPackedDIB,
   UINT nUsage 
);
BOOL CreateDIBPatternBrush(
   const void* lpPackedDIB,
   UINT nUsage 
);

매개 변수

  • hPackedDIB
    압축된 장치 독립적 비트맵 (DIB)을 포함 하는 전역 메모리 개체를 식별 합니다.

  • nUsage
    지정 여부는 bmiColors 필드는 BITMAPINFO 현재 실현된 논리 색상표에 명시적 RGB 값 또는 인덱스 데이터 구조 ("DIB 압축"의 부분)을 포함.매개 변수는 다음 값 중 하나 여야 합니다.

    • DIB_PAL_COLORS 색상표 16 비트 인덱스 배열을 구성 됩니다.

    • DIB_RGB_COLORS RGB 값을 리터럴 색상표를 포함 합니다.

  • lpPackedDIB
    구성 된 압축 된 DIB를 가리키는 있는 BITMAPINFO 구조에서 정의 하는 비트맵의 픽셀 바이트 배열을 바로 뒤.

반환 값

성공 하면 0이 아닌. 그렇지 않으면 0입니다.

설명

브러시는 이후에 래스터 작업을 지 원하는 모든 장치 컨텍스트를 선택할 수 있습니다.

두 버전의 DIB을 처리 하는 방식에 다.

  • 첫 번째 버전에는 DIB에 대 한 핸들을 얻으려면 Windows 전화 GlobalAlloc 함수를 전역 메모리 블록을 할당 하 고 메모리 압축 된 DIB를 입력 합니다.

  • 호출 하는 필요 없는 두 번째 버전에서 GlobalAlloc 압축 된 DIB에 대 한 메모리를 할당할 수 있습니다.

압축 된 DIB 구성에 BITMAPINFO 픽셀의 비트맵을 정의 하는 바이트 배열에서 바로 뒤에 데이터 구조.비트맵 채우기 패턴으로 사용할 8 x 8 픽셀 이어야 합니다.비트맵이 큰 경우 Windows만 처음 8 개 행 및 열 8 픽셀 비트맵의 왼쪽 위 모서리에 해당 하는 비트를 사용 하 여 채우기 패턴을 만듭니다.

두 가지 색 DIB 패턴 브러시 단색 장치 컨텍스트에 응용 프로그램을 선택 하면 Windows DIB에 지정 된 색 무시 하 고 대신 디바이스 컨텍스트의 현재 배경 및 텍스트 색을 사용 하 여 패턴 브러시를 표시 합니다.텍스트 색을 사용 하 여 매핑된는 DIB (오프셋 0 DIB 색 테이블에서)에서 첫 번째 색 픽셀이 표시 됩니다.픽셀 매핑 (오프셋 1 색 테이블에서)에서 두 번째 색 배경 색을 사용 하 여 표시 됩니다.

다음 Windows 기능 사용에 대 한 내용은 Windows SDK.

  • CreateDIBPatternBrush (이 함수가 고 3.0 이전 버전의 Windows 용으로 작성 된 응용 프로그램 호환성에 대 한 제공 사용 하는 CreateDIBPatternBrushPt 함수입니다.)

  • CreateDIBPatternBrushPt (이 기능은 Win32 기반 응용 프로그램을 사용 합니다.)

  • GlobalAlloc

예제

// Resource handle to bitmap.
HRSRC hRes;    
// Global handles to bitmap resource.
HGLOBAL hData;
void* hLockedData;   
CBrush brush;

// Find the resource handle.
hRes = ::FindResource(AfxGetResourceHandle(),
MAKEINTRESOURCE(IDB_BRUSH), RT_BITMAP);
if (hRes != NULL)
{
   // Lock and Load (or Load and Lock).
   if (((hData = ::LoadResource(AfxGetResourceHandle(),
      hRes)) != NULL) && 
      ((hLockedData = ::LockResource(hData)) != NULL))
   {
      // Initialize the brush.
      brush.CreateDIBPatternBrush((const void*)hLockedData,
         DIB_RGB_COLORS);

      // Select the brush into the device context.
      CBrush* pOldBrush = pDC->SelectObject(&brush);

      // Draw.
      pDC->Rectangle(50, 50, 200, 200);

      // Restore the original device context.
      pDC->SelectObject(pOldBrush);

      // Free the resource.
      ::FreeResource(hLockedData);
   }
}

요구 사항

헤더: afxwin.h

참고 항목

참조

CBrush 클래스

계층 구조 차트

CBrush::CreatePatternBrush

CBrush::CreateBrushIndirect

CBrush::CreateSolidBrush

CBrush::CreateHatchBrush

CGdiObject::CreateStockObject

CDC::SelectObject

CGdiObject::DeleteObject

CDC::GetBrushOrg

CDC::SetBrushOrg