CBrush (clase)CBrush Class

Encapsula un pincel de la Interfaz de dispositivo gráfico (GDI) de Windows.Encapsulates a Windows graphics device interface (GDI) brush.

SintaxisSyntax

class CBrush : public CGdiObject

MiembrosMembers

Constructores públicosPublic Constructors

NombreName DescripciónDescription
CBrush::CBrushCBrush::CBrush Construye un objeto CBrush.Constructs a CBrush object.

Métodos públicosPublic Methods

NombreName DescripciónDescription
CBrush::CreateBrushIndirectCBrush::CreateBrushIndirect Inicializa un pincel con el estilo, el color y el patrón especificados en una estructura LOGBRUSH.Initializes a brush with the style, color, and pattern specified in a LOGBRUSH structure.
CBrush::CreateDIBPatternBrushCBrush::CreateDIBPatternBrush Inicializa un pincel con un patrón especificado por un mapa de bits independiente del dispositivo (DIB).Initializes a brush with a pattern specified by a device-independent bitmap (DIB).
CBrush::CreateHatchBrushCBrush::CreateHatchBrush Inicializa un pincel con el patrón sombreado y el color especificados.Initializes a brush with the specified hatched pattern and color.
CBrush::CreatePatternBrushCBrush::CreatePatternBrush Inicializa un pincel con un patrón especificado por un mapa de bits.Initializes a brush with a pattern specified by a bitmap.
CBrush::CreateSolidBrushCBrush::CreateSolidBrush Inicializa un pincel con el color sólido especificado.Initializes a brush with the specified solid color.
CBrush::CreateSysColorBrushCBrush::CreateSysColorBrush Crea un pincel que es el color predeterminado del sistema.Creates a brush that is the default system color.
CBrush::FromHandleCBrush::FromHandle Devuelve un puntero CBrush a un objeto cuando HBRUSH se le da un identificador a un objeto de Windows.Returns a pointer to a CBrush object when given a handle to a Windows HBRUSH object.
CBrush::GetLogBrushCBrush::GetLogBrush Obtiene una estructura LOGBRUSH.Gets a LOGBRUSH structure.

Operadores públicosPublic Operators

NombreName DescripciónDescription
CBrush::operador HBRUSHCBrush::operator HBRUSH Devuelve el identificador de CBrush Windows asociado al objeto.Returns the Windows handle attached to the CBrush object.

ObservacionesRemarks

Para utilizar CBrush un objeto, construya un CBrush CDC objeto y páselo a cualquier función miembro que requiera un pincel.To use a CBrush object, construct a CBrush object and pass it to any CDC member function that requires a brush.

Los pinceles pueden ser sólidos, sombreados o estampados.Brushes can be solid, hatched, or patterned.

Para obtener CBrushmás información sobre , consulte Objetos gráficos.For more information on CBrush, see Graphic Objects.

Jerarquía de herenciaInheritance Hierarchy

CObjectCObject

CGdiObjectCGdiObject

CBrush

RequisitosRequirements

Encabezado: afxwin.hHeader: afxwin.h

CBrush::CBrushCBrush::CBrush

Construye un objeto CBrush.Constructs a CBrush object.

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

ParámetrosParameters

crColorcrColor
Especifica el color de primer plano del pincel como un color RGB.Specifies the foreground color of the brush as an RGB color. Si el pincel está sombreado, este parámetro especifica el color del sombreado.If the brush is hatched, this parameter specifies the color of the hatching.

nIndexnIndex
Especifica el estilo de sombreado del pincel.Specifies the hatch style of the brush. Puede ser cualquiera de los siguientes valores:It can be any one of the following values:

  • HS_BDIAGONAL escotilla hacia abajo (de izquierda a derecha) a 45 gradosHS_BDIAGONAL Downward hatch (left to right) at 45 degrees

  • HS_CROSS rayado horizontal y verticalHS_CROSS Horizontal and vertical crosshatch

  • HS_DIAGCROSS Crosshatch a 45 gradosHS_DIAGCROSS Crosshatch at 45 degrees

  • HS_FDIAGONAL escotilla hacia arriba (de izquierda a derecha) a 45 gradosHS_FDIAGONAL Upward hatch (left to right) at 45 degrees

  • HS_HORIZONTAL escotilla horizontalHS_HORIZONTAL Horizontal hatch

  • HS_VERTICAL escotilla verticalHS_VERTICAL Vertical hatch

pBitmappBitmap
Apunta a CBitmap un objeto que especifica un mapa de bits con el que pinta el pincel.Points to a CBitmap object that specifies a bitmap with which the brush paints.

ObservacionesRemarks

CBrushtiene cuatro constructores sobrecargados. El constructor sin argumentos construye CBrush un objeto no inicializado que se debe inicializar antes de que se pueda usar.CBrush has four overloaded constructors.The constructor with no arguments constructs an uninitialized CBrush object that must be initialized before it can be used.

Si utiliza el constructor sin argumentos, CBrush debe inicializar el objeto resultante con CreateSolidBrush, CreateHatchBrush, CreateBrushIndirect, CreatePatternBrusho CreateDIBPatternBrush.If you use the constructor with no arguments, you must initialize the resulting CBrush object with CreateSolidBrush, CreateHatchBrush, CreateBrushIndirect, CreatePatternBrush, or CreateDIBPatternBrush. Si utiliza uno de los constructores que toma argumentos, no es necesaria ninguna inicialización adicional.If you use one of the constructors that takes arguments, then no further initialization is necessary. Los constructores con argumentos pueden producir una excepción si se encuentran errores, mientras que el constructor sin argumentos siempre se realizará correctamente.The constructors with arguments can throw an exception if errors are encountered, while the constructor with no arguments will always succeed.

El constructor con un único parámetro COLORREF construye un pincel sólido con el color especificado.The constructor with a single COLORREF parameter constructs a solid brush with the specified color. El color especifica un valor RGB y se puede construir con la macro RGB en WINDOWS. H.The color specifies an RGB value and can be constructed with the RGB macro in WINDOWS.H.

El constructor con dos parámetros construye un pincel de sombreado.The constructor with two parameters constructs a hatch brush. El nIndex parámetro especifica el índice de un patrón sombreado.The nIndex parameter specifies the index of a hatched pattern. El parámetro crColor especifica el color.The crColor parameter specifies the color.

El constructor CBitmap con un parámetro construye un pincel con patrón.The constructor with a CBitmap parameter constructs a patterned brush. El parámetro identifica un mapa de bits.The parameter identifies a bitmap. Se supone que el mapa de bits se ha creado mediante CBitmap::CreateBitmap, CBitmap::CreateBitmapIndirect, CBitmap::LoadBitmapo CBitmap::CreateCompatibleBitmap.The bitmap is assumed to have been created by using CBitmap::CreateBitmap, CBitmap::CreateBitmapIndirect, CBitmap::LoadBitmap, or CBitmap::CreateCompatibleBitmap. El tamaño mínimo para que un mapa de bits se utilice en un patrón de relleno es de 8 píxeles por 8 píxeles.The minimum size for a bitmap to be used in a fill pattern is 8 pixels by 8 pixels.

EjemploExample

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

CBrush::CreateBrushIndirectCBrush::CreateBrushIndirect

Inicializa un pincel con un estilo, color y patrón especificados en una estructura LOGBRUSH.Initializes a brush with a style, color, and pattern specified in a LOGBRUSH structure.

BOOL CreateBrushIndirect(const LOGBRUSH* lpLogBrush);

ParámetrosParameters

lpLogBrushlpLogBrush
Apunta a una estructura LOGBRUSH que contiene información sobre el pincel.Points to a LOGBRUSH structure that contains information about the brush.

Valor devueltoReturn Value

Es distinto de cero si la función se realiza correctamente; de lo contrario, es 0.Nonzero if the function is successful; otherwise 0.

ObservacionesRemarks

El pincel se puede seleccionar posteriormente como el pincel actual para cualquier contexto de dispositivo.The brush can subsequently be selected as the current brush for any device context.

Un pincel creado con un mapa de bits monocromo (1 plano, 1 bit por píxel) se dibuja utilizando el texto actual y los colores de fondo.A brush created using a monochrome (1 plane, 1 bit per pixel) bitmap is drawn using the current text and background colors. Los píxeles representados por un bit establecido en 0 se dibujarán con el color de texto actual.Pixels represented by a bit set to 0 will be drawn with the current text color. Los píxeles representados por un bit establecido en 1 se dibujarán con el color de fondo actual.Pixels represented by a bit set to 1 will be drawn with the current background color.

EjemploExample

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

CBrush::CreateDIBPatternBrushCBrush::CreateDIBPatternBrush

Inicializa un pincel con el patrón especificado por un mapa de bits independiente del dispositivo (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);

ParámetrosParameters

hPackedDIBhPackedDIB
Identifica un objeto de memoria global que contiene un mapa de bits (DIB) independiente del dispositivo empaquetado.Identifies a global-memory object containing a packed device-independent bitmap (DIB).

nUsonUsage
Especifica si bmiColors[] los campos de la estructura de datos BITMAPINFO (una parte de la "DIB empaquetada") contienen valores RGB explícitos o índices en la paleta lógica realizada actualmente.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. El parámetro debe ser uno de los siguientes valores:The parameter must be one of the following values:

  • DIB_PAL_COLORS La tabla de colores consta de una matriz de índices de 16 bits.DIB_PAL_COLORS The color table consists of an array of 16-bit indexes.

  • DIB_RGB_COLORS La tabla de colores contiene valores RGB literales.DIB_RGB_COLORS The color table contains literal RGB values.

lpPackedDIBlpPackedDIB
Apunta a un DIB empaquetado BITMAPINFO que consta de una estructura seguida inmediatamente de una matriz de bytes que define los píxeles del mapa de bits.Points to a packed DIB consisting of a BITMAPINFO structure immediately followed by an array of bytes defining the pixels of the bitmap.

Valor devueltoReturn Value

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.Nonzero if successful; otherwise 0.

ObservacionesRemarks

El pincel se puede seleccionar posteriormente para cualquier contexto de dispositivo que admita operaciones ráster.The brush can subsequently be selected for any device context that supports raster operations.

Las dos versiones difieren en la forma en que usted maneja el DIB:The two versions differ in the way you handle the DIB:

  • En la primera versión, para obtener un identificador GlobalAlloc para el DIB se llama a la función de Windows para asignar un bloque de memoria global y, a continuación, rellenar la memoria con el DIB empaquetado.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.

  • En la segunda versión, no GlobalAlloc es necesario llamar para asignar memoria para el DIB empaquetado.In the second version, it is not necessary to call GlobalAlloc to allocate memory for the packed DIB.

Un DIB empaquetado consta BITMAPINFO de una estructura de datos seguida inmediatamente por la matriz de bytes que define los píxeles del mapa de bits.A packed DIB consists of a BITMAPINFO data structure immediately followed by the array of bytes that defines the pixels of the bitmap. Los mapas de bits utilizados como patrones de relleno deben ser de 8 píxeles por 8 píxeles.Bitmaps used as fill patterns should be 8 pixels by 8 pixels. Si el mapa de bits es más grande, Windows crea un patrón de relleno utilizando solo los bits correspondientes a las primeras 8 filas y 8 columnas de píxeles en la esquina superior izquierda del mapa de bits.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.

Cuando una aplicación selecciona un pincel de patrón DIB de dos colores en un contexto de dispositivo monocromo, Windows ignora los colores especificados en el DIB y, en su lugar, muestra el pincel de patrón utilizando el texto actual y los colores de fondo del contexto del dispositivo.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. Los píxeles asignados al primer color (en el desplazamiento 0 en la tabla de colores DIB) del DIB se muestran utilizando el color del texto.Pixels mapped to the first color (at offset 0 in the DIB color table) of the DIB are displayed using the text color. Los píxeles asignados al segundo color (en el desplazamiento 1 de la tabla de colores) se muestran con el color de fondo.Pixels mapped to the second color (at offset 1 in the color table) are displayed using the background color.

Para obtener información sobre el uso de las siguientes funciones de Windows, consulte el Windows SDK:For information about using the following Windows functions, see the Windows SDK:

  • CreateDIBPatternBrush (Esta función se proporciona solo para la compatibilidad con aplicaciones escritas CreateDIBPatternBrushPt para versiones de Windows anteriores a 3.0; utilizar la función.)CreateDIBPatternBrush (This function is provided only for compatibility with applications written for versions of Windows earlier than 3.0; use the CreateDIBPatternBrushPt function.)

  • CreateDIBPatternBrushPt (Esta función se debe utilizar para aplicaciones basadas en Win32.)CreateDIBPatternBrushPt (This function should be used for Win32-based applications.)

  • GlobalAllocGlobalAlloc

EjemploExample

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

CBrush::CreateHatchBrushCBrush::CreateHatchBrush

Inicializa un pincel con el patrón sombreado y el color especificados.Initializes a brush with the specified hatched pattern and color.

BOOL CreateHatchBrush(
    int nIndex,
    COLORREF crColor);

ParámetrosParameters

nIndexnIndex
Especifica el estilo de sombreado del pincel.Specifies the hatch style of the brush. Puede ser cualquiera de los siguientes valores:It can be any one of the following values:

  • HS_BDIAGONAL escotilla hacia abajo (de izquierda a derecha) a 45 gradosHS_BDIAGONAL Downward hatch (left to right) at 45 degrees

  • HS_CROSS rayado horizontal y verticalHS_CROSS Horizontal and vertical crosshatch

  • HS_DIAGCROSS Crosshatch a 45 gradosHS_DIAGCROSS Crosshatch at 45 degrees

  • HS_FDIAGONAL escotilla hacia arriba (de izquierda a derecha) a 45 gradosHS_FDIAGONAL Upward hatch (left to right) at 45 degrees

  • HS_HORIZONTAL escotilla horizontalHS_HORIZONTAL Horizontal hatch

  • HS_VERTICAL escotilla verticalHS_VERTICAL Vertical hatch

crColorcrColor
Especifica el color de primer plano del pincel como un color RGB (el color de los sombreados).Specifies the foreground color of the brush as an RGB color (the color of the hatches). Consulte COLORREF en el Windows SDK para obtener más información.See COLORREF in the Windows SDK for more information.

Valor devueltoReturn Value

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.Nonzero if successful; otherwise 0.

ObservacionesRemarks

El pincel se puede seleccionar posteriormente como el pincel actual para cualquier contexto de dispositivo.The brush can subsequently be selected as the current brush for any device context.

EjemploExample

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

CBrush::CreatePatternBrushCBrush::CreatePatternBrush

Inicializa un pincel con un patrón especificado por un mapa de bits.Initializes a brush with a pattern specified by a bitmap.

BOOL CreatePatternBrush(CBitmap* pBitmap);

ParámetrosParameters

pBitmappBitmap
Identifica un mapa de bits.Identifies a bitmap.

Valor devueltoReturn Value

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.Nonzero if successful; otherwise 0.

ObservacionesRemarks

El pincel se puede seleccionar posteriormente para cualquier contexto de dispositivo que admita operaciones ráster.The brush can subsequently be selected for any device context that supports raster operations. El mapa de bits identificado por pBitmap normalmente se inicializa mediante la función CBitmap::CreateBitmap, CBitmap::CreateBitmapIndirect, CBitmap::LoadBitmapo CBitmap::CreateCompatibleBitmap .The bitmap identified by pBitmap is typically initialized by using the CBitmap::CreateBitmap, CBitmap::CreateBitmapIndirect, CBitmap::LoadBitmap, or CBitmap::CreateCompatibleBitmap function.

Los mapas de bits utilizados como patrones de relleno deben ser de 8 píxeles por 8 píxeles.Bitmaps used as fill patterns should be 8 pixels by 8 pixels. Si el mapa de bits es más grande, Windows solo usará los bits correspondientes a las primeras 8 filas y columnas de píxeles en la esquina superior izquierda del mapa de bits.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.

Un pincel de patrón se puede eliminar sin afectar al mapa de bits asociado.A pattern brush can be deleted without affecting the associated bitmap. Esto significa que el mapa de bits se puede utilizar para crear cualquier número de pinceles de patrón.This means the bitmap can be used to create any number of pattern brushes.

Un pincel creado con un mapa de bits monocromo (1 plano de color, 1 bit por píxel) se dibuja utilizando el texto actual y los colores de fondo.A brush created using a monochrome bitmap (1 color plane, 1 bit per pixel) is drawn using the current text and background colors. Los píxeles representados por un bit establecido en 0 se dibujan con el color de texto actual.Pixels represented by a bit set to 0 are drawn with the current text color. Los píxeles representados por un bit establecido en 1 se dibujan con el color de fondo actual.Pixels represented by a bit set to 1 are drawn with the current background color.

Para obtener información sobre el uso de CreatePatternBrush, una función de Windows, consulte el Windows SDK.For information about using CreatePatternBrush, a Windows function, see the Windows SDK.

EjemploExample

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

CBrush::CreateSolidBrushCBrush::CreateSolidBrush

Inicializa un pincel con un color sólido especificado.Initializes a brush with a specified solid color.

BOOL CreateSolidBrush(COLORREF crColor);

ParámetrosParameters

crColorcrColor
Estructura COLORREF que especifica el color del pincel.A COLORREF structure that specifies the color of the brush. El color especifica un valor RGB y se puede construir con la macro RGB en WINDOWS. H.The color specifies an RGB value and can be constructed with the RGB macro in WINDOWS.H.

Valor devueltoReturn Value

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.Nonzero if successful; otherwise 0.

ObservacionesRemarks

El pincel se puede seleccionar posteriormente como el pincel actual para cualquier contexto de dispositivo.The brush can subsequently be selected as the current brush for any device context.

Cuando una aplicación ha terminado CreateSolidBrushde usar el pincel creado por , debe seleccionar el pincel fuera del contexto del dispositivo.When an application has finished using the brush created by CreateSolidBrush, it should select the brush out of the device context.

EjemploExample

Vea el ejemplo de CBrush::CBrush.See the example for CBrush::CBrush.

CBrush::CreateSysColorBrushCBrush::CreateSysColorBrush

Inicializa un color de pincel.Initializes a brush color.

BOOL CreateSysColorBrush(int nIndex);

ParámetrosParameters

nIndexnIndex
Especifica un índice de color.Specifies a color index. Este valor corresponde al color utilizado para pintar uno de los 21 elementos de la ventana.This value corresponds to the color used to paint one of the 21 window elements. Consulte GetSysColor en el Windows SDK para obtener una lista de valores.See GetSysColor in the Windows SDK for a list of values.

Valor devueltoReturn Value

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.Nonzero if successful; otherwise 0.

ObservacionesRemarks

El pincel se puede seleccionar posteriormente como el pincel actual para cualquier contexto de dispositivo.The brush can subsequently be selected as the current brush for any device context.

Cuando una aplicación ha terminado CreateSysColorBrushde usar el pincel creado por , debe seleccionar el pincel fuera del contexto del dispositivo.When an application has finished using the brush created by CreateSysColorBrush, it should select the brush out of the device context.

EjemploExample

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

CBrush::FromHandleCBrush::FromHandle

Devuelve un puntero CBrush a un objeto cuando se le da un identificador a un objeto HBRUSH de Windows.Returns a pointer to a CBrush object when given a handle to a Windows HBRUSH object.

static CBrush* PASCAL FromHandle(HBRUSH hBrush);

ParámetrosParameters

hBrushhBrush
MANO a un pincel GDI de Windows.HANDLE to a Windows GDI brush.

Valor devueltoReturn Value

Un puntero CBrush a un objeto si se realiza correctamente; NULL.A pointer to a CBrush object if successful; otherwise NULL.

ObservacionesRemarks

Si CBrush un objeto aún no está asociado CBrush al identificador, se crea y adjunta un objeto temporal.If a CBrush object is not already attached to the handle, a temporary CBrush object is created and attached. Este CBrush objeto temporal solo es válido hasta la próxima vez que la aplicación tenga tiempo de inactividad en su bucle de eventos.This temporary CBrush object is valid only until the next time the application has idle time in its event loop. En este momento, se eliminan todos los objetos gráficos temporales.At this time, all temporary graphic objects are deleted. En otras palabras, el objeto temporal sólo es válido durante el procesamiento de un mensaje de ventana.In other words, the temporary object is valid only during the processing of one window message.

Para obtener más información sobre el uso de objetos gráficos, vea Objetos gráficos en el Windows SDK.For more information about using graphic objects, see Graphic Objects in the Windows SDK.

EjemploExample

Vea el ejemplo de CBrush::CBrush.See the example for CBrush::CBrush.

CBrush::GetLogBrushCBrush::GetLogBrush

Llame a esta función miembro para recuperar la LOGBRUSH estructura.Call this member function to retrieve the LOGBRUSH structure.

int GetLogBrush(LOGBRUSH* pLogBrush);

ParámetrosParameters

pLogBrushpLogBrush
Apunta a una estructura LOGBRUSH que contiene información sobre el pincel.Points to a LOGBRUSH structure that contains information about the brush.

Valor devueltoReturn Value

Si la función se realiza correctamente y pLogBrush es un puntero válido, el valor devuelto es el número de bytes almacenados en el búfer.If the function succeeds, and pLogBrush is a valid pointer, the return value is the number of bytes stored into the buffer.

Si la función se realiza correctamente y pLogBrush es NULL, el valor devuelto es el número de bytes necesarios para contener la información que la función almacenaría en el búfer.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.

Si se produce un error en la función, el valor devuelto es 0.If the function fails, the return value is 0.

ObservacionesRemarks

La LOGBRUSH estructura define el estilo, el color y el patrón de un pincel.The LOGBRUSH structure defines the style, color, and pattern of a brush.

Por ejemplo, GetLogBrush llame para que coincida con el color o patrón determinado de un mapa de bits.For example, call GetLogBrush to match the particular color or pattern of a bitmap.

EjemploExample

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

CBrush::operador HBRUSHCBrush::operator HBRUSH

Utilice este operador para obtener el identificador CBrush GDI de Windows adjunto del objeto.Use this operator to get the attached Windows GDI handle of the CBrush object.

operator HBRUSH() const;

Valor devueltoReturn Value

Si se realiza correctamente, un identificador para CBrush el objeto GDI de Windows representado por el objeto; NULL.If successful, a handle to the Windows GDI object represented by the CBrush object; otherwise NULL.

ObservacionesRemarks

Este operador es un operador de conversión, que admite el uso directo de un objeto HBRUSH.This operator is a casting operator, which supports direct use of an HBRUSH object.

Para obtener más información sobre el uso de objetos gráficos, vea Objetos gráficos en el Windows SDK.For more information about using graphic objects, see Graphic Objects in the Windows SDK.

EjemploExample

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

Consulte tambiénSee also

Ejemplo de MFC PROPDLGMFC Sample PROPDLG
CGdiObject (clase)CGdiObject Class
Gráfico de jerarquíasHierarchy Chart
Clase CBitmapCBitmap Class
Clase CDCCDC Class