C브러시 클래스CBrush Class

Windows GDI(그래픽 디바이스 인터페이스) 브러시를 캡슐화합니다.Encapsulates a Windows graphics device interface (GDI) brush.

구문Syntax

class CBrush : public CGdiObject

멤버Members

Public 생성자Public Constructors

속성Name DescriptionDescription
CBrush::CBrushCBrush::CBrush CBrush 개체를 생성합니다.Constructs a CBrush object.

Public 메서드Public Methods

속성Name DescriptionDescription
CBrush::CreateBrushIndirectCBrush::CreateBrushIndirect LOGBRUSH 구조에 지정된 스타일, 색상 및 패턴으로 브러시를 초기화합니다.Initializes a brush with the style, color, and pattern specified in a LOGBRUSH structure.
CBrush::CreateDIBPatternBrushCBrush::CreateDIBPatternBrush 장치 독립 비트맵(DIB)에 의해 지정된 패턴으로 브러시를 초기화합니다.Initializes a brush with a pattern specified by a device-independent bitmap (DIB).
C브러시:::해치 브러쉬 만들기CBrush::CreateHatchBrush 지정된 해치 된 패턴 및 색상으로 브러시를 초기화합니다.Initializes a brush with the specified hatched pattern and color.
C브러시::패턴 브러쉬 만들기CBrush::CreatePatternBrush 비트맵에 의해 지정된 패턴으로 브러시를 초기화합니다.Initializes a brush with a pattern specified by a bitmap.
C브러시::솔리드 브러쉬 만들기CBrush::CreateSolidBrush 지정된 단색으로 브러시를 초기화합니다.Initializes a brush with the specified solid color.
CBrush::CreateSysColorBrushCBrush::CreateSysColorBrush 기본 시스템 색상인 브러시를 만듭니다.Creates a brush that is the default system color.
C브러시::에서 핸들CBrush::FromHandle Windows HBRUSH 개체에 CBrush 핸들을 지정하면 개체에 대한 포인터를 반환합니다.Returns a pointer to a CBrush object when given a handle to a Windows HBRUSH object.
CBrush::GetLogBrushCBrush::GetLogBrush LOGBRUSH 구조를 가져옵니다.Gets a LOGBRUSH structure.

Public 연산자Public Operators

속성Name DescriptionDescription
C브러시::연산자 H브러시CBrush::operator HBRUSH 개체에 연결된 Windows CBrush 핸들을 반환합니다.Returns the Windows handle attached to the CBrush object.

설명Remarks

개체를 CBrush 사용하려면 개체를 CBrush 생성하고 브러시가 필요한 멤버 CDC 함수에 전달합니다.To use a CBrush object, construct a CBrush object and pass it to any CDC member function that requires a brush.

브러시는 솔리드, 해치 또는 패턴일 수 있습니다.Brushes can be solid, hatched, or patterned.

자세한 CBrush내용은 그래픽 개체를 참조하십시오.For more information on CBrush, see Graphic Objects.

상속 계층 구조Inheritance Hierarchy

CObjectCObject

CGdiObjectCGdiObject

CBrush

요구 사항Requirements

헤더: afxwin.hHeader: afxwin.h

C 브러시 :: C 브러시CBrush::CBrush

CBrush 개체를 생성합니다.Constructs a CBrush object.

CBrush();
CBrush(COLORREF crColor);
CBrush(int nIndex, COLORREF crColor);
explicit CBrush(CBitmap* pBitmap);

매개 변수Parameters

crColorcrColor
브러시의 전경 색상을 RGB 색상으로 지정합니다.Specifies the foreground color of the brush as an RGB color. 브러시가 해치된 경우 이 매개변수는 해칭의 색상을 지정합니다.If the brush is hatched, this parameter specifies the color of the hatching.

nIndexnIndex
브러시의 해치 스타일을 지정합니다.Specifies the hatch style of the brush. 다음 값 중 하나일 수 있습니다.It can be any one of the following values:

  • HS_BDIAGONAL 하향 해치(왼쪽에서 오른쪽)를 45도에서HS_BDIAGONAL Downward hatch (left to right) at 45 degrees

  • HS_CROSS 수평 및 수직 크로스해치HS_CROSS Horizontal and vertical crosshatch

  • 45도에서 크로스해치 HS_DIAGCROSSHS_DIAGCROSS Crosshatch at 45 degrees

  • HS_FDIAGONAL 위쪽 해치(왼쪽에서 오른쪽)를 45도에서HS_FDIAGONAL Upward hatch (left to right) at 45 degrees

  • HS_HORIZONTAL 수평 해치HS_HORIZONTAL Horizontal hatch

  • HS_VERTICAL 수직 해치HS_VERTICAL Vertical hatch

pBitmappBitmap
브러시가 CBitmap 페인트하는 비트맵을 지정하는 개체를 가리킵니다.Points to a CBitmap object that specifies a bitmap with which the brush paints.

설명Remarks

CBrush오버로드된 생성자 4개가 있습니다. 인수가 없는 생성자는 초기화되지 CBrush 않은 개체를 생성한 후 사용할 수 있습니다.CBrush has four overloaded constructors.The constructor with no arguments constructs an uninitialized CBrush object that must be initialized before it can be used.

인수없이 생성물을 사용하는 경우 CBrush SolidBrush 만들기, CreateHatchBrush, CreateBrush직접만들기, CreatePatternBrush또는 CreateDIBPatternBrush를 사용하여 결과 개체를 초기화해야 합니다. CreateHatchBrushIf you use the constructor with no arguments, you must initialize the resulting CBrush object with CreateSolidBrush, CreateHatchBrush, CreateBrushIndirect, CreatePatternBrush, or CreateDIBPatternBrush. 인수를 사용하는 생성자 중 하나를 사용하는 경우 추가 초기화가 필요하지 않습니다.If you use one of the constructors that takes arguments, then no further initialization is necessary. 인수가 있는 생성자는 오류가 발생하면 예외를 throw할 수 있지만 인수가 없는 생성자는 항상 성공합니다.The constructors with arguments can throw an exception if errors are encountered, while the constructor with no arguments will always succeed.

단일 COLORREF 매개 변수가 있는 생성자는 지정된 색상으로 솔리드 브러시를 구성합니다.The constructor with a single COLORREF parameter constructs a solid brush with the specified color. 색상은 RGB 값을 지정하고 WINDOWS에서 RGB 매크로로 구성할 수 있습니다. H.The color specifies an RGB value and can be constructed with the RGB macro in WINDOWS.H.

두 매개변수가 있는 생성자는 해치 브러시를 생성합니다.The constructor with two parameters constructs a hatch brush. nIndex 매개 변수는 해치된 패턴의 인덱스를 지정합니다.The nIndex parameter specifies the index of a hatched pattern. crColor 매개 변수는 색상을 지정합니다.The crColor parameter specifies the color.

매개 변수가 CBitmap 있는 생성자는 패턴브러시를 생성합니다.The constructor with a CBitmap parameter constructs a patterned brush. 매개 변수는 비트맵을 식별합니다.The parameter identifies a bitmap. 비트맵은 CBitmap::CreateBitmap, CBitmap::CreateBitmapIndirect, CBitmap::LoadBitmap,또는 CBitmap::Create CompatibleBitmap을 사용하여 생성된 것으로 가정합니다.The bitmap is assumed to have been created by using CBitmap::CreateBitmap, CBitmap::CreateBitmapIndirect, CBitmap::LoadBitmap, or CBitmap::CreateCompatibleBitmap. 채우기 패턴에 사용할 비트맵의 최소 크기는 8x8픽셀입니다.The minimum size for a bitmap to be used in a fill pattern is 8 pixels by 8 pixels.

예제Example

// CBrush::CBrush.
CBrush brush1;                           // Must initialize!
brush1.CreateSolidBrush(RGB(0, 0, 255)); // Blue brush.

CRect rc;
GetClientRect(&rc);
ScreenToClient(&rc);

// Save original brush.
CBrush *pOrigBrush = (CBrush *)pDC->SelectObject(&brush1);

// Paint upper left corner with blue brush.
pDC->Rectangle(0, 0, rc.Width() / 2, rc.Height() / 2);

// These constructors throw resource exceptions.
try
{
   // CBrush::CBrush(COLORREF crColor)
   CBrush brush2(RGB(255, 0, 0)); // Solid red brush.

   // CBrush::CBrush(int nIndex, COLORREF crColor)
   // Hatched green brush.
   CBrush brush3(HS_DIAGCROSS, RGB(0, 255, 0));

   // CBrush::CBrush(CBitmap* pBitmap)
   CBitmap bmp;
   // Load a resource bitmap.
   bmp.LoadBitmap(IDB_BRUSH);
   CBrush brush4(&bmp);

   pDC->SelectObject(&brush2);

   // Paint upper right corner with red brush.
   pDC->Rectangle(rc.Width() / 2, 0, rc.Width(),
                  rc.Height() / 2);

   pDC->SelectObject(&brush3);

   // Paint lower left corner with green hatched brush.
   pDC->Rectangle(0, rc.Height() / 2, rc.Width() / 2,
                  rc.Height());

   pDC->SelectObject(&brush4);

   // Paint lower right corner with resource brush.
   pDC->Rectangle(rc.Width() / 2, rc.Height() / 2,
                  rc.Width(), rc.Height());
}
catch (CResourceException *e)
{
   e->ReportError();
   e->Delete();
}

// Reselect original brush into device context.
pDC->SelectObject(pOrigBrush);

C브러시::브러시 간접 만들기CBrush::CreateBrushIndirect

LOGBRUSH 구조에 지정된 스타일, 색상 및 패턴으로 브러시를 초기화합니다.Initializes a brush with a style, color, and pattern specified in a LOGBRUSH structure.

BOOL CreateBrushIndirect(const LOGBRUSH* lpLogBrush);

매개 변수Parameters

lpLogBrushlpLogBrush
브러시에 대한 정보가 포함된 LOGBRUSH 구조를 가리킵니다.Points to a LOGBRUSH structure that contains information about the brush.

Return ValueReturn Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.Nonzero if the function is successful; otherwise 0.

설명Remarks

이후에 브러시를 모든 장치 컨텍스트의 현재 브러시로 선택할 수 있습니다.The brush can subsequently be selected as the current brush for any device context.

현재 텍스트 및 배경 색을 사용하여 흑백(평면 1개, 픽셀당 1비트) 비트맵을 사용하여 만든 브러시가 그려집니다.A brush created using a monochrome (1 plane, 1 bit per pixel) bitmap is drawn using the current text and background colors. 비트로 표시된 픽셀은 0으로 설정되어 현재 텍스트 색상으로 그려집니다.Pixels represented by a bit set to 0 will be drawn with the current text color. 비트로 표시되는 픽셀은 1로 설정되어 현재 배경색으로 그려집니다.Pixels represented by a bit set to 1 will be drawn with the current background color.

예제Example

// Initialize a LOGBRUSH structure.
LOGBRUSH logBrush;
logBrush.lbStyle = BS_HATCHED;
logBrush.lbColor = RGB(0, 192, 192);
logBrush.lbHatch = HS_CROSS;

// Declare an uninitialized CBrush ...
CBrush brush;
// ... and initialize it with the LOGBRUSH.
brush.CreateBrushIndirect(&logBrush);

// Select the brush (and perhaps a pen) into
// the device context.
CBrush *pOldBrush = (CBrush *)pDC->SelectObject(&brush);
CPen *pOldPen = (CPen *)pDC->SelectStockObject(BLACK_PEN);

// Have fun!
pDC->Pie(CRect(100, 100, 300, 300), CPoint(0, 0), CPoint(50, 200));

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

C브러시::만들기디비패턴브러쉬CBrush::CreateDIBPatternBrush

장치 독립 비트맵(DIB)에 의해 지정된 패턴으로 브러시를 초기화합니다.Initializes a brush with the pattern specified by a device-independent bitmap (DIB).

BOOL CreateDIBPatternBrush(
    HGLOBAL hPackedDIB,
    UINT nUsage);

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

매개 변수Parameters

hPackedDIBhPackedDIB
압축된 장치 독립 비트맵(DIB)을 포함하는 전역 메모리 개체를 식별합니다.Identifies a global-memory object containing a packed device-independent bitmap (DIB).

nUsagenUsage
BITMAPINFO 데이터 구조의 bmiColors[] 필드 ("압축 된 DIB"의 일부)에 명시적 RGB 값이나 인덱스가 현재 인식되는 논리 색상표에 포함되는지 여부를 지정합니다.Specifies whether the bmiColors[] fields of the BITMAPINFO data structure (a part of the "packed DIB") contain explicit RGB values or indices into the currently realized logical palette. 매개 변수는 다음 값 중 하나여야 합니다.The parameter must be one of the following values:

  • DIB_PAL_COLORS 색상 테이블은 16비트 인덱스 배열로 구성됩니다.DIB_PAL_COLORS The color table consists of an array of 16-bit indexes.

  • DIB_RGB_COLORS 색상 테이블에리터럴 RGB 값이 포함되어 있습니다.DIB_RGB_COLORS The color table contains literal RGB values.

lpPackedDIBlpPackedDIB
BITMAPINFO 구조로 구성된 압축된 DIB를 가리키고 비트맵의 픽셀을 정의하는 바이트 배열이 바로 뒤따릅니다.Points to a packed DIB consisting of a BITMAPINFO structure immediately followed by an array of bytes defining the pixels of the bitmap.

Return ValueReturn Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.Nonzero if successful; otherwise 0.

설명Remarks

래스터 작업을 지원하는 모든 장치 컨텍스트에 대해 이후에 브러시를 선택할 수 있습니다.The brush can subsequently be selected for any device context that supports raster operations.

두 버전은 DIB를 처리하는 방식이 다릅니다.The two versions differ in the way you handle the DIB:

  • 첫 번째 버전에서는 DIB에 대한 핸들을 얻으려면 GlobalAlloc Windows 함수를 호출하여 전역 메모리 블록을 할당한 다음 압축된 DIB로 메모리를 채웁니다.In the first version, to obtain a handle to the DIB you call the Windows GlobalAlloc function to allocate a block of global memory and then fill the memory with the packed DIB.

  • 두 번째 버전에서는 압축된 DIB에 대한 메모리 할당을 호출할 GlobalAlloc 필요가 없습니다.In the second version, it is not necessary to call GlobalAlloc to allocate memory for the packed DIB.

압축된 DIB는 BITMAPINFO 비트맵의 픽셀을 정의하는 바이트 배열 다음에 바로 뒤에 있는 데이터 구조로 구성됩니다.A packed DIB consists of a BITMAPINFO data structure immediately followed by the array of bytes that defines the pixels of the bitmap. 채우기 패턴으로 사용되는 비트맵은 8x8픽셀이어야 합니다.Bitmaps used as fill patterns should be 8 pixels by 8 pixels. 비트맵이 큰 경우 Windows는 비트맵의 왼쪽 위 모서리에 있는 처음 8행과 8개의 픽셀 열에 해당하는 비트만 사용하여 채우기 패턴을 만듭니다.If the bitmap is larger, Windows creates a fill pattern using only the bits corresponding to the first 8 rows and 8 columns of pixels in the upper-left corner of the bitmap.

응용 프로그램이 단색 장치 컨텍스트로 2색 DIB 패턴 브러시를 선택하면 Windows는 DIB에 지정된 색상을 무시하고 대신 장치 컨텍스트의 현재 텍스트 및 배경 색을 사용하여 패턴 브러시를 표시합니다.When an application selects a two-color DIB pattern brush into a monochrome device context, Windows ignores the colors specified in the DIB and instead displays the pattern brush using the current text and background colors of the device context. DIB의 첫 번째 색상(DIB 색상 표의 오프셋 0)에 매핑된 픽셀은 텍스트 색상을 사용하여 표시됩니다.Pixels mapped to the first color (at offset 0 in the DIB color table) of the DIB are displayed using the text color. 두 번째 색상에 매핑된 픽셀(색상 표의 오프셋 1에서)은 배경색을 사용하여 표시됩니다.Pixels mapped to the second color (at offset 1 in the color table) are displayed using the background color.

다음 Windows 함수 사용에 대한 자세한 내용은 Windows SDK를 참조하십시오.For information about using the following Windows functions, see the Windows SDK:

예제Example

// 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);
   }
}

C브러시:::해치 브러쉬 만들기CBrush::CreateHatchBrush

지정된 해치 된 패턴 및 색상으로 브러시를 초기화합니다.Initializes a brush with the specified hatched pattern and color.

BOOL CreateHatchBrush(
    int nIndex,
    COLORREF crColor);

매개 변수Parameters

nIndexnIndex
브러시의 해치 스타일을 지정합니다.Specifies the hatch style of the brush. 다음 값 중 하나일 수 있습니다.It can be any one of the following values:

  • HS_BDIAGONAL 하향 해치(왼쪽에서 오른쪽)를 45도에서HS_BDIAGONAL Downward hatch (left to right) at 45 degrees

  • HS_CROSS 수평 및 수직 크로스해치HS_CROSS Horizontal and vertical crosshatch

  • 45도에서 크로스해치 HS_DIAGCROSSHS_DIAGCROSS Crosshatch at 45 degrees

  • HS_FDIAGONAL 위쪽 해치(왼쪽에서 오른쪽)를 45도에서HS_FDIAGONAL Upward hatch (left to right) at 45 degrees

  • HS_HORIZONTAL 수평 해치HS_HORIZONTAL Horizontal hatch

  • HS_VERTICAL 수직 해치HS_VERTICAL Vertical hatch

crColorcrColor
브러시의 전경 색상을 RGB 색상(해치의 색상)으로 지정합니다.Specifies the foreground color of the brush as an RGB color (the color of the hatches). 자세한 내용은 Windows SDK의 COLORREF를 참조하십시오.See COLORREF in the Windows SDK for more information.

Return ValueReturn Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.Nonzero if successful; otherwise 0.

설명Remarks

이후에 브러시를 모든 장치 컨텍스트의 현재 브러시로 선택할 수 있습니다.The brush can subsequently be selected as the current brush for any device context.

예제Example

CBrush brush;
brush.CreateHatchBrush(HS_BDIAGONAL, RGB(255, 0, 0));

CBrush *pOldBrush;
CPen *pOldPen;

pOldBrush = (CBrush *)pDC->SelectObject(&brush);
pOldPen = (CPen *)pDC->SelectStockObject(NULL_PEN);
pDC->Ellipse(CRect(50, 50, 250, 250));

pDC->SelectObject(pOldBrush);
pDC->SelectObject(pOldPen);

C브러시::패턴 브러쉬 만들기CBrush::CreatePatternBrush

비트맵에 의해 지정된 패턴으로 브러시를 초기화합니다.Initializes a brush with a pattern specified by a bitmap.

BOOL CreatePatternBrush(CBitmap* pBitmap);

매개 변수Parameters

pBitmappBitmap
비트맵을 식별합니다.Identifies a bitmap.

Return ValueReturn Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.Nonzero if successful; otherwise 0.

설명Remarks

래스터 작업을 지원하는 모든 장치 컨텍스트에 대해 이후에 브러시를 선택할 수 있습니다.The brush can subsequently be selected for any device context that supports raster operations. pBitmap으로 식별 된 비트 맵은 일반적으로 CBitmap::CreateBitmap, CBitmapIndirect : CBitmap : CBitmap ::LoadBitmap, 또는 CBitmap::CreateCompatibleBitmap 함수를 사용하여 초기화됩니다.The bitmap identified by pBitmap is typically initialized by using the CBitmap::CreateBitmap, CBitmap::CreateBitmapIndirect, CBitmap::LoadBitmap, or CBitmap::CreateCompatibleBitmap function.

채우기 패턴으로 사용되는 비트맵은 8x8픽셀이어야 합니다.Bitmaps used as fill patterns should be 8 pixels by 8 pixels. 비트맵이 큰 경우 Windows는 비트맵의 왼쪽 위 모서리에 있는 처음 8행 및 픽셀 열에 해당하는 비트만 사용합니다.If the bitmap is larger, Windows will only use the bits corresponding to the first 8 rows and columns of pixels in the upper-left corner of the bitmap.

패턴 브러시는 연결된 비트맵에 영향을 주지 않고 삭제할 수 있습니다.A pattern brush can be deleted without affecting the associated bitmap. 즉, 비트맵을 사용하여 임의의 수의 패턴 브러시를 만들 수 있습니다.This means the bitmap can be used to create any number of pattern brushes.

현재 텍스트 및 배경 색을 사용하여 흑백 비트맵(1색 평면, 픽셀당 1비트)을 사용하여 만든 브러시가 그려집니다.A brush created using a monochrome bitmap (1 color plane, 1 bit per pixel) is drawn using the current text and background colors. 비트로 표시된 픽셀은 0으로 설정되어 현재 텍스트 색상으로 그려집니다.Pixels represented by a bit set to 0 are drawn with the current text color. 비트로 표시되는 픽셀은 1로 설정되어 현재 배경색으로 그려집니다.Pixels represented by a bit set to 1 are drawn with the current background color.

Windows 함수인 CreatePatternBrush사용에 대한 자세한 내용은 Windows SDK를 참조하십시오.For information about using CreatePatternBrush, a Windows function, see the Windows SDK.

예제Example

// Create a hatched bit pattern.
WORD HatchBits[8] = {0x11, 0x22, 0x44, 0x88, 0x11,
                     0x22, 0x44, 0x88};

// Use the bit pattern to create a bitmap.
CBitmap bm;
bm.CreateBitmap(8, 8, 1, 1, HatchBits);

// Create a pattern brush from the bitmap.
CBrush brush;
brush.CreatePatternBrush(&bm);

// Select the brush into a device context, and draw.
CBrush *pOldBrush = (CBrush *)pDC->SelectObject(&brush);
pDC->RoundRect(CRect(50, 50, 200, 200), CPoint(10, 10));

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

C브러시::솔리드 브러쉬 만들기CBrush::CreateSolidBrush

지정된 단색으로 브러시를 초기화합니다.Initializes a brush with a specified solid color.

BOOL CreateSolidBrush(COLORREF crColor);

매개 변수Parameters

crColorcrColor
브러시의 색상을 지정하는 COLORREF 구조입니다.A COLORREF structure that specifies the color of the brush. 색상은 RGB 값을 지정하고 WINDOWS에서 RGB 매크로로 구성할 수 있습니다. H.The color specifies an RGB value and can be constructed with the RGB macro in WINDOWS.H.

Return ValueReturn Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.Nonzero if successful; otherwise 0.

설명Remarks

이후에 브러시를 모든 장치 컨텍스트의 현재 브러시로 선택할 수 있습니다.The brush can subsequently be selected as the current brush for any device context.

응용 프로그램이 CreateSolidBrush만든 브러시를 사용하여 완료되면 장치 컨텍스트에서 브러시를 선택해야 합니다.When an application has finished using the brush created by CreateSolidBrush, it should select the brush out of the device context.

예제Example

CBrush::CBrush에대한 예제를 참조하십시오.See the example for CBrush::CBrush.

C브러시::만들기SYsColor브러쉬CBrush::CreateSysColorBrush

브러시 색상을 초기화합니다.Initializes a brush color.

BOOL CreateSysColorBrush(int nIndex);

매개 변수Parameters

nIndexnIndex
색상 인덱스를 지정합니다.Specifies a color index. 이 값은 21개의 창 요소 중 하나를 페인칠하는 데 사용되는 색상에 해당합니다.This value corresponds to the color used to paint one of the 21 window elements. 값 목록은 Windows SDK의 GetSysColor를 참조하십시오.See GetSysColor in the Windows SDK for a list of values.

Return ValueReturn Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.Nonzero if successful; otherwise 0.

설명Remarks

이후에 브러시를 모든 장치 컨텍스트의 현재 브러시로 선택할 수 있습니다.The brush can subsequently be selected as the current brush for any device context.

응용 프로그램이 CreateSysColorBrush만든 브러시를 사용하여 완료되면 장치 컨텍스트에서 브러시를 선택해야 합니다.When an application has finished using the brush created by CreateSysColorBrush, it should select the brush out of the device context.

예제Example

// Declare a CBrush and initialize to a system color.
CBrush brush;
brush.CreateSysColorBrush(COLOR_BTNFACE);

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

// Draw.
CRect rect(50, 50, 150, 150);
pDC->Rectangle(rect);

// Reselect the original brush.
pDC->SelectObject(pOldBrush);

C브러시::에서 핸들CBrush::FromHandle

Windows HBRUSH CBrush 개체에 핸들을 지정하면 개체에 대한 포인터를 반환합니다.Returns a pointer to a CBrush object when given a handle to a Windows HBRUSH object.

static CBrush* PASCAL FromHandle(HBRUSH hBrush);

매개 변수Parameters

hBrushhBrush
Windows GDI 브러시를 처리합니다.HANDLE to a Windows GDI brush.

Return ValueReturn Value

성공한 경우 CBrush 개체에 대한 포인터입니다. 그렇지 않으면 NULL.A pointer to a CBrush object if successful; otherwise NULL.

설명Remarks

개체가 CBrush 핸들에 아직 연결되어 있지 않으면 CBrush 임시 개체가 만들어지고 첨부됩니다.If a CBrush object is not already attached to the handle, a temporary CBrush object is created and attached. CBrush 임시 개체는 다음에 응용 프로그램이 이벤트 루프에 유휴 시간을 가지는 때까지만 유효합니다.This temporary CBrush object is valid only until the next time the application has idle time in its event loop. 이 때 모든 임시 그래픽 개체가 삭제됩니다.At this time, all temporary graphic objects are deleted. 즉, 임시 개체는 하나의 창 메시지를 처리하는 동안에만 유효합니다.In other words, the temporary object is valid only during the processing of one window message.

그래픽 개체 사용에 대한 자세한 내용은 Windows SDK의 그래픽 개체를 참조하십시오.For more information about using graphic objects, see Graphic Objects in the Windows SDK.

예제Example

CBrush::CBrush에대한 예제를 참조하십시오.See the example for CBrush::CBrush.

C브러시::겟로그브러쉬CBrush::GetLogBrush

구조를 검색하려면 이 LOGBRUSH 멤버 함수를 호출합니다.Call this member function to retrieve the LOGBRUSH structure.

int GetLogBrush(LOGBRUSH* pLogBrush);

매개 변수Parameters

pLogBrushpLogBrush
브러시에 대한 정보가 포함된 LOGBRUSH 구조를 가리킵니다.Points to a LOGBRUSH structure that contains information about the brush.

Return ValueReturn Value

함수가 성공하고 pLogBrush가 유효한 포인터인 경우 반환 값은 버퍼에 저장된 바이트 수입니다.If the function succeeds, and pLogBrush is a valid pointer, the return value is the number of bytes stored into the buffer.

함수가 성공하고 pLogBrush가 NULL인 경우 반환 값은 함수가 버퍼에 저장할 정보를 보유하는 데 필요한 바이트 수입니다.If the function succeeds, and pLogBrush is NULL, the return value is the number of bytes required to hold the information the function would store into the buffer.

함수가 실패하면 반환 값은 0입니다.If the function fails, the return value is 0.

설명Remarks

구조는 LOGBRUSH 브러시의 스타일, 색상 및 패턴을 정의합니다.The LOGBRUSH structure defines the style, color, and pattern of a brush.

예를 들어 GetLogBrush 비트맵의 특정 색상 이나 패턴과 일치 하도록 호출 합니다.For example, call GetLogBrush to match the particular color or pattern of a bitmap.

예제Example

// Example for CBrush::GetLogBrush
LOGBRUSH logbrush;
brushExisting.GetLogBrush(&logbrush);
CBrush brushOther(logbrush.lbColor);

// Another example
// Declare a LOGBRUSH
LOGBRUSH logBrush;

// Using a bitmap for this example.
// The bitmap should be a project resource.
CBitmap bm;
bm.LoadBitmap(IDB_BRUSH);

try
{
   // Create a brush
   CBrush brush1(&bm);

   // Use GetLogBrush to fill the LOGBRUSH structure
   brush1.GetLogBrush(&logBrush);

   // Create a second brush using the LOGBRUSH data
   CBrush brush2;
   brush2.CreateBrushIndirect(&logBrush);

   // Use the first brush
   CBrush *pOldBrush = (CBrush *)pDC->SelectObject(&brush1);
   pDC->Rectangle(CRect(50, 50, 150, 150));

   // The second brush has the specified characteristics
   // of the first brush
   pDC->SelectObject(&brush2);
   pDC->Ellipse(200, 50, 300, 150);

   // Reselect the original brush
   pDC->SelectObject(pOldBrush);
}
catch (CResourceException *e)
{
   e->ReportError();
   e->Delete();
}

C브러시::연산자 H브러시CBrush::operator HBRUSH

이 연산자를 사용하여 개체의 연결된 CBrush Windows GDI 핸들을 가져옵니다.Use this operator to get the attached Windows GDI handle of the CBrush object.

operator HBRUSH() const;

Return ValueReturn Value

성공하면 개체로 표시되는 Windows GDI 개체에 대한 핸들입니다. CBrush 그렇지 않으면 NULL.If successful, a handle to the Windows GDI object represented by the CBrush object; otherwise NULL.

설명Remarks

이 연산자는 HBRUSH 개체의 직접 사용을 지원하는 캐스팅 연산자입니다.This operator is a casting operator, which supports direct use of an HBRUSH object.

그래픽 개체 사용에 대한 자세한 내용은 Windows SDK의 그래픽 개체를 참조하십시오.For more information about using graphic objects, see Graphic Objects in the Windows SDK.

예제Example

RECT rc = {50, 50, 200, 200};

Rectangle(pDC->GetSafeHdc(), rc.left, rc.top, rc.right, rc.bottom);

// The Win32 call to FillRect requires an HBRUSH.
// The HBRUSH operator casts the CBrush object
// to the required type.
CBrush brush;
brush.CreateSysColorBrush(COLOR_BTNFACE);
FillRect(pDC->GetSafeHdc(), &rc, (HBRUSH)brush);

참고 항목See also

MFC 샘플 PROPDLGMFC Sample PROPDLG
CGdiObject 클래스CGdiObject Class
계층 구조 차트Hierarchy Chart
C비트맵 클래스CBitmap Class
CDC 클래스CDC Class