Clase CGdiObject
Proporciona una clase base para diferentes clases de objetos de la interfaz de dispositivo gráfico (GDI) de Windows, tales como mapas de bits, regiones, pinceles, lápices, tablas y fuentes.
Sintaxis
class CGdiObject : public CObject
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CGdiObject::CGdiObject | Construye un objeto CGdiObject . |
Métodos públicos
Nombre | Descripción |
---|---|
CGdiObject::Attach | Este método se usa para asociar un objeto GDI de Windows con un objeto CGdiObject . |
CGdiObject::CreateStockObject | Este método se usa para recuperar un manipulador de uno de los lápices, los pinceles o las fuentes predefinidas de Windows. |
CGdiObject::DeleteObject | Este método se usa para eliminar el objeto GDI de Windows que se haya asociado con el objeto CGdiObject de la memoria y, por tanto, liberar todo el almacenamiento del sistema que esté asociado con este objeto. |
CGdiObject::DeleteTempMap | Este método se usa para eliminar los objetos temporales CGdiObject que se hayan creado mediante el uso del método FromHandle . |
CGdiObject::Detach | Este método se usa para desasociar un objeto GDI de Windows de un objeto CGdiObject , así como para obtener un manipulador de ese objeto GDI de Windows. |
CGdiObject::FromHandle | Este método se usa para devolver un puntero que apunta a un objeto CGdiObject si se especifica el manipulador de un objeto GDI de Windows. |
CGdiObject::GetObject | Este método se usa para rellenar un búfer con datos que se usan para describir el objeto GDI de Windows que se asoció con el objeto CGdiObject . |
CGdiObject::GetObjectType | Este método se usa para recuperar el tipo del objeto GDI en cuestión. |
CGdiObject::GetSafeHandle | Al usar este método, se obtiene el objeto m_hObject a menos que el objeto actual (this ) sea NULL; en ese caso, se devolverá el valor NULL. |
CGdiObject::UnrealizeObject | Este método se usa para restablecer el origen de un pincel o restablecer una paleta lógica. |
Operadores públicos
Nombre | Descripción |
---|---|
CGdiObject::operator != | Este operador se usa para determinar si dos objetos GDI no son lógicamente iguales. |
CGdiObject::operator == | Este operador se usa para determinar si dos objetos GDI son lógicamente iguales. |
CGdiObject::operator HGDIOBJ | Este operador se usa para recuperar un manipulador (HANDLE) para el objeto GDI de Windows que se asoció. |
Miembros de datos públicos
Nombre | Descripción |
---|---|
CGdiObject::m_hObject | En este manipulador (HANDLE) se incluyen los datos que se corresponden con los elementos HBITMAP, HPALETTE, HRGN, HBRUSH, HPEN o HFONT que se hayan asociado con el objeto actual. |
Comentarios
CGdiObject
nunca se crea directamente. En su lugar, cree un objeto a partir de una de sus clases derivadas, como CPen
o CBrush
.
Para más información sobre la clase CGdiObject
, consulte Objetos gráficos.
Jerarquía de herencia
CGdiObject
Requisitos
Encabezado: afxwin.h
CGdiObject::Attach
Este método se usa para asociar un objeto GDI de Windows con un objeto CGdiObject
.
BOOL Attach(HGDIOBJ hObject);
Parámetros
hObject
El valor de este parámetro se corresponde con un manipulador (HANDLE) de un objeto GDI de Windows (por ejemplo: HPEN o HBRUSH).
Valor devuelto
Es valor devuelto de este método será distinto de cero si los elementos se asocian correctamente; de lo contrario será 0.
CGdiObject::CGdiObject
Construye un objeto CGdiObject
.
CGdiObject();
Comentarios
CGdiObject
nunca se crea directamente. En su lugar, cree un objeto a partir de una de sus clases derivadas, como CPen
o Cbrush
.
CGdiObject::CreateStockObject
Este método se usa para recuperar un manipulador para uno de los lápices, los pinceles o las fuentes GDI de Windows estándar predefinidas, así como para asociar el objeto GDI con el objeto CGdiObject
.
BOOL CreateStockObject(int nIndex);
Parámetros
nIndex
El valor de este parámetro se corresponde con una constante que se usa para especificar el tipo de objeto estándar que quiere usarse. Para obtener una descripción de los valores adecuados, consulte el parámetro fnObject de la función GetStockObject en Windows SDK.
Valor devuelto
Es distinto de cero si la función se realiza correctamente; de lo contrario, es 0.
Comentarios
Llame a esta función con una de las clases derivadas que se corresponda con el tipo de objeto GDI de Windows, como CPen
para un lápiz de stock.
CGdiObject::DeleteObject
Este método se usa para eliminar de la memoria el objeto GDI de Windows que se haya asociado y, por tanto, para liberar todo el almacenamiento del sistema que esté asociado con este objeto.
BOOL DeleteObject();
Valor devuelto
El valor devuelto será distinto de cero si el objeto GDI se eliminó correctamente; de lo contrario, será 0.
Comentarios
El almacenamiento que esté asociado con el objeto CGdiObject
no sufrirá los efectos de esta llamada. En una aplicación, no debe llamarse al método DeleteObject
sobre un objeto CGdiObject
que esté seleccionado actualmente en un contexto de dispositivo.
Cuando se elimine un pincel de patrón, no se eliminará el mapa de bits que esté asociado con este. Este mapa de bits deberá eliminarse de forma independiente.
CGdiObject::DeleteTempMap
Se llama automáticamente a esta clase desde el controlador de tiempo de inactividad CWinApp
. El métodoDeleteTempMap
se usa para eliminar cualquier objeto CGdiObject
temporal que se haya creado mediante el método FromHandle
.
static void PASCAL DeleteTempMap();
Comentarios
Al usar el método DeleteTempMap
, se desasociará el objeto GDI de Windows que estaba asociado con un objeto CGdiObject
temporal antes de que se elimine el objeto CGdiObject
.
Ejemplo
// DeleteTempMap() is a static member and so does not need to
// be called within the scope of an instantiated CGdiObject object.
CGdiObject::DeleteTempMap();
CGdiObject::Detach
Este método se usa para desasociar un objeto GDI de Windows de un objeto CGdiObject
, así como para obtener un manipulador de ese objeto GDI de Windows.
HGDIOBJ Detach();
Valor devuelto
El valor devuelto se corresponderá con un manipulador (HANDLE
) para el objeto GDI de Windows que se desasocie; de lo contrario, si no hay ningún objeto GDI asociado, se devolverá el valor NULL.
CGdiObject::FromHandle
Este método se usa para devolver un puntero que apunta a un objeto CGdiObject
si se especifica el manipulador de un objeto GDI de Windows.
static CGdiObject* PASCAL FromHandle(HGDIOBJ hObject);
Parámetros
hObject
El valor de este parámetro se corresponde con un manipulador (HANDLE) de un objeto GDI de Windows.
Valor devuelto
Un puntero a CGdiObject
que podría ser temporal o permanente.
Comentarios
Si todavía no se ha asociado un objeto CGdiObject
con el objeto GDI de Windows, se creará y asociará un objeto CGdiObject
temporal.
Este objeto CGdiObject
temporal solo será válido hasta la próxima vez que haya tiempo de inactividad en el bucle de eventos de la aplicación. En ese momento, se eliminarán todos los objetos gráficos temporales. Es decir, el objeto temporal solo será válido mientras se procesa un mensaje de ventana.
CGdiObject::GetObject
Este método se usa para rellenar un búfer con datos que se usan para definir un objeto que se especifica.
int GetObject(
int nCount,
LPVOID lpObject) const;
Parámetros
nCount
El valor de este parámetro se usa para especificar el número de bytes que deben copiarse en el búfer del parámetro lpObject.
lpObject
El valor de este parámetro se usa para apuntar a un búfer proporcionado por el usuario donde va a recibirse la información.
Valor devuelto
El valor devuelto se corresponderá con el número de bytes que se recuperen; de lo contrario, si se produce un error, será 0.
Comentarios
Al usar este método, se recupera una estructura de datos cuyo tipo depende del tipo de objeto gráfico, tal y como se muestra en la lista siguiente:
Object | Tipo de búfer |
---|---|
CPen |
LOGPEN |
CBrush |
LOGBRUSH |
CFont |
LOGFONT |
CBitmap |
BITMAP |
CPalette |
WORD |
CRgn |
No compatible |
Si el objeto es un objeto CBitmap
, solo se devolverá la información de formato sobre el ancho, el alto y el color del mapa de bits al usar el método GetObject
. Los bits reales se pueden recuperar mediante el método CBitmap::GetBitmapBits.
Si el objeto es un objeto CPalette
, solo se recuperará un búfer de tipo WORD al usar el método GetObject
, donde se especificará el número de entradas de la paleta. Al usar esta función, no se recuperará la estructura LOGPALETTE donde se define la paleta. En una aplicación, se puede obtener información sobre las entradas de paleta mediante una llamada al método CPalette::GetPaletteEntries.
CGdiObject::GetObjectType
Este método se usa para recuperar el tipo del objeto GDI en cuestión.
UINT GetObjectType() const;
Valor devuelto
Si el método se ejecuta correctamente, el valor devuelto se corresponderá con el tipo del objeto; de lo contrario, será 0. El valor puede ser uno de los siguientes:
OBJ_BITMAP (un mapa de bits)
OBJ_BRUSH (un pincel)
OBJ_FONT (una fuente)
OBJ_PAL (una paleta)
OBJ_PEN (un lápiz)
OBJ_EXTPEN (un lápiz extendido)
OBJ_REGION (una región)
OBJ_DC (un contexto de dispositivo)
OBJ_MEMDC (un contexto de dispositivo de memoria)
OBJ_METAFILE (un metarchivo)
OBJ_METADC (un contexto de dispositivo de metarchivo)
OBJ_ENHMETAFILE (un metarchivo mejorado)
OBJ_ENHMETADC (un contexto de dispositivo de metarchivo mejorado)
CGdiObject::GetSafeHandle
Al usar este método, se obtiene el objeto m_hObject
a menos que el objeto actual (this
) sea NULL; en ese caso, se devolverá el valor NULL.
HGDIOBJ GetSafeHandle() const;
Valor devuelto
El valor devuelto será un manipulador (HANDLE) del objeto GDI de Windows que esté adjunto; de lo contrario, si no hay ningún objeto adjunto, el valor será NULL.
Comentarios
Este método forma parte del paradigma de interfaz de manipuladores general y resulta útil en casos en los que el valor NULL constituye un valor válido o especial para un manipulador.
Ejemplo
Consulte el ejemplo de la clase CWnd::IsWindowEnabled.
CGdiObject::m_hObject
En este manipulador (HANDLE) se incluyen los datos que se corresponden con los elementos HBITMAP, HPALETTE, HRGN, HBRUSH, HPEN o HFONT que se hayan asociado con el objeto actual.
HGDIOBJ m_hObject;
CGdiObject::operator !=
Este operador se usa para determinar si dos objetos GDI no son lógicamente iguales.
BOOL operator!=(const CGdiObject& obj) const;
Parámetros
obj
El valor de este parámetro se corresponde con un puntero que apunta a un objeto CGdiObject
existente.
Comentarios
Este operador se usa para determinar si el objeto GDI del lado izquierdo equivale al objeto GDI del lado derecho.
CGdiObject::operator ==
Este operador se usa para determinar si dos objetos GDI son lógicamente iguales.
BOOL operator==(const CGdiObject& obj) const;
Parámetros
obj
El valor de este parámetro se corresponde con una referencia a un objeto CGdiObject
existente.
Comentarios
Este operador se usa para determinar si el objeto GDI del lado izquierdo equivale al objeto GDI del lado derecho.
CGdiObject::operator HGDIOBJ
Este operador se usa para recuperar un manipulador (HANDLE) del objeto GDI de Windows que esté adjunto; de lo contrario, si no hay ningún objeto adjunto, el valor será NULL.
operator HGDIOBJ() const;
CGdiObject::UnrealizeObject
Este método se usa para restablecer el origen de un pincel o restablecer una paleta lógica.
BOOL UnrealizeObject();
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Aunque el método UnrealizeObject
constituye una de las funciones miembro de la clase CGdiObject
, esta solo se deberá invocar en sobre objetos de tipo CBrush
o CPalette
.
En el caso de los objetos de tipo CBrush
, el uso del método UnrealizeObject
le permitirá hacer que, en el sistema, se restablezca el origen de un pincel determinado la siguiente vez que este se seleccione en un contexto de dispositivo. Si el objeto es un objeto CPalette
, el uso del método UnrealizeObject
le permitirá hacer que, en el sistema, se la paleta se realice como si no se hubiera hecho anteriormente. La próxima vez que se llame a la función CDC::RealizePalette en la aplicación en relación con la paleta que se especifique, el sistema reasignará completamente la paleta lógica con la paleta del sistema.
La función UnrealizeObject
no debe usarse con objetos estándar. Se deberá llamar a la función UnrealizeObject
cada vez que se establezca un nuevo origen de pincel (mediante la función CDC::SetBrushOrg). No se deberá llamar a la función UnrealizeObject
en relación con el pincel o la paleta que estén seleccionadas actualmente en cualquier contexto de presentación.
Consulte también
Gráfico de jerarquías
CBitmap (clase)
CBrush (clase)
CFont (clase)
CPalette (clase)
CPen (clase)
CRgn (clase)