Objetos gráficosGraphic Objects

Windows proporciona diversas herramientas de dibujo que se usan en contextos de dispositivo.Windows provides a variety of drawing tools to use in device contexts. Incluye lápices para trazar líneas, pinceles para rellenar interiores y fuentes para dibujar texto.It provides pens to draw lines, brushes to fill interiors, and fonts to draw text. MFC proporciona clases de objetos gráficos que equivalen a las herramientas de dibujo de Windows.MFC provides graphic-object classes equivalent to the drawing tools in Windows. En la siguiente tabla se recogen las clases disponibles y los tipos de identificador de Interfaz de dispositivo gráfico (GDI) de Windows equivalentes.The table below shows the available classes and the equivalent Windows graphics device interface (GDI) handle types.

Nota

Para obtener más información, vea la documentación del SDK de GDI+.For more information, see the GDI+ SDK documentation.

En este artículo se explica el uso de estas clases de objetos gráficos:This article explains the use of these graphic-object classes:

Clases de objetos GDI de WindowsClasses for Windows GDI Objects

ClassClass Tipo de identificador de WindowsWindows handle type
CPenCPen HPEN
CBrushCBrush HBRUSH
CFontCFont HFONTHFONT
CBitmapCBitmap HBITMAP
CPaletteCPalette HPALETTE
CRgnCRgn HRGNHRGN

Nota

La clase CImage proporciona compatibilidad mejorada con mapas de bits.The class CImage provides enhanced bitmap support.

Cada clase de objeto gráfico en la biblioteca de clases tiene un constructor que permite crear objetos gráficos de esa clase. Este constructor se tiene que inicializar con la función de creación adecuada, como, por ejemplo, CreatePen.Each graphic-object class in the class library has a constructor that allows you to create graphic objects of that class, which you must then initialize with the appropriate create function, such as CreatePen.

Cada clase de objeto gráfico en la biblioteca de clases tiene un operador de conversión que convierte un objeto MFC en el identificador de Windows asociado.Each graphic-object class in the class library has a cast operator that will cast an MFC object to the associated Windows handle. El identificador resultante es válido hasta que el objeto asociado lo desconecta.The resulting handle is valid until the associated object detaches it. Utilice la Detach función miembro del objeto para desasociar el identificador.Use the object's Detach member function to detach the handle.

El siguiente código convierte un objeto CPen en un identificador de Windows:The following code casts a CPen object to a Windows handle:

CPen myPen;
myPen.CreatePen(PS_COSMETIC, 1, RGB(255,255,0));
HPEN hMyPen = (HPEN)myPen;

Para crear un objeto gráfico en un contexto de dispositivoTo create a graphic object in a device context

  1. Defina un objeto gráfico en el marco de pila.Define a graphic object on the stack frame. Inicialice el objeto con la función de creación específica del tipo, como CreatePen.Initialize the object with the type-specific create function, such as CreatePen. Como alternativa, inicialice el objeto en el constructor.Alternatively, initialize the object in the constructor. Vea la explicación de la creación en una fase y en dos fases, que proporciona código de ejemplo.See the discussion of one-stage and two-stage creation, which provides example code.

  2. Seleccione el objeto en el contexto del dispositivo actualy guarde el objeto gráfico anterior que se seleccionó anteriormente.Select the object into the current device context, saving the old graphic object that was selected before.

  3. Cuando termine con el objeto gráfico actual, seleccione el objeto gráfico anterior en el contexto de dispositivo para restaurar su estado.When done with the current graphic object, select the old graphic object back into the device context to restore its state.

  4. Deje que el objeto gráfico asignado por el marco se elimine automáticamente cuando salga del ámbito.Allow the frame-allocated graphic object to be deleted automatically when the scope is exited.

Nota

Si va a usar un objeto gráfico repetidamente, puede asignarlo una vez y seleccionarlo en un contexto de dispositivo cada vez que lo necesite.If you will be using a graphic object repeatedly, you can allocate it once and select it into a device context each time it is needed. Asegúrese de eliminar este objeto cuando ya no lo necesite.Be sure to delete such an object when you no longer need it.

¿Qué desea saber más sobreWhat do you want to know more about

Consulte tambiénSee also

Window (Objetos)Window Objects