Condividi tramite


Classe CGdiObject

Fornisce una classe di base per diversi generi di oggetti GDI (Graphics Device Interface) di Windows, quali bitmap, aree, pennelli, penne, tavolozze e tipi di carattere.

Sintassi

class CGdiObject : public CObject

Membri

Costruttori pubblici

Nome Descrizione
CGdiObject::CGdiObject Costruisce un oggetto CGdiObject.

Metodi pubblici

Nome Descrizione
CGdiObject::Attach Associa un oggetto Windows GDI a un CGdiObject oggetto .
CGdiObject::CreateStockObject Recupera un handle in una delle penne predefinite, pennelli o tipi di carattere predefiniti di Windows.
CGdiObject::D eleteObject Elimina l'oggetto GDI di Windows collegato all'oggetto CGdiObject dalla memoria liberando tutte le risorse di archiviazione di sistema associate all'oggetto .
CGdiObject::D eleteTempMap Elimina tutti gli oggetti temporanei CGdiObject creati da FromHandle.
CGdiObject::D etach Scollega un oggetto GDI di Windows da un CGdiObject oggetto e restituisce un handle all'oggetto GDI di Windows.
CGdiObject::FromHandle Restituisce un puntatore a un CGdiObject oggetto dato un handle a un oggetto GDI di Windows.
CGdiObject::GetObject Riempie un buffer con dati che descrivono l'oggetto GDI di Windows associato all'oggetto CGdiObject .
CGdiObject::GetObjectType Recupera il tipo dell'oggetto GDI.
CGdiObject::GetSafeHandle Restituisce m_hObject a meno che non this sia NULL, nel qual caso viene restituito NULL.
CGdiObject::Unobject Reimposta l'origine di un pennello o reimposta una tavolozza logica.

Operatori pubblici

Nome Descrizione
CGdiObject::operator != Determina se due oggetti GDI sono logicamente non uguali.
CGdiObject::operator == Determina se due oggetti GDI sono logicamente uguali.
CGdiObject::operator HGDIOBJ Recupera un handle all'oggetto GDI di Windows associato.

Membri dati pubblici

Nome Descrizione
CGdiObject::m_hObject HANDLE contenente HBITMAP, HPALETTE, HRGN, HBRUSH, HPEN o HFONT associato a questo oggetto.

Osservazioni:

Non si crea mai direttamente un oggetto CGdiObject . Invece, si crea un oggetto da una delle relative classi derivate, ad esempio CPen o CBrush.

Per altre informazioni su CGdiObject, vedere Oggetti grafici.

Gerarchia di ereditarietà

CObject

CGdiObject

Requisiti

Intestazione: afxwin.h

CGdiObject::Attach

Associa un oggetto Windows GDI a un CGdiObject oggetto .

BOOL Attach(HGDIOBJ hObject);

Parametri

hObject
Handle per un oggetto GDI di Windows, ad esempio HPEN o HBRUSH.

Valore restituito

Diverso da zero se l'allegato ha esito positivo; in caso contrario, 0.

CGdiObject::CGdiObject

Costruisce un oggetto CGdiObject.

CGdiObject();

Osservazioni:

Non si crea mai direttamente un oggetto CGdiObject . Invece, si crea un oggetto da una delle relative classi derivate, ad esempio CPen o Cbrush.

CGdiObject::CreateStockObject

Recupera un handle in uno degli oggetti GDI predefiniti di Windows GDI, pennelli o tipi di carattere predefiniti e associa l'oggetto GDI all'oggetto CGdiObject .

BOOL CreateStockObject(int nIndex);

Parametri

nIndex
Costante che specifica il tipo di oggetto stock desiderato. Per una descrizione dei valori appropriati, vedere il parametro fnObject per GetStockObject in Windows SDK.

Valore restituito

Diverso da zero se la funzione ha esito positivo; in caso contrario, 0.

Osservazioni:

Chiamare questa funzione con una delle classi derivate che corrisponde al tipo di oggetto GDI di Windows, ad esempio CPen per una penna stock.

CGdiObject::D eleteObject

Elimina l'oggetto GDI di Windows collegato dalla memoria liberando tutte le risorse di archiviazione di sistema associate all'oggetto GDI di Windows.

BOOL DeleteObject();

Valore restituito

Diverso da zero se l'oggetto GDI è stato eliminato correttamente; in caso contrario, 0.

Osservazioni:

Lo spazio di archiviazione associato all'oggetto CGdiObject non è interessato da questa chiamata. Un'applicazione non deve chiamare DeleteObject su un CGdiObject oggetto attualmente selezionato in un contesto di dispositivo.

Quando un pennello di motivo viene eliminato, la bitmap associata al pennello non viene eliminata. La bitmap deve essere eliminata in modo indipendente.

CGdiObject::D eleteTempMap

Chiamato automaticamente dal CWinApp gestore tempo di inattività, DeleteTempMap elimina tutti gli oggetti temporanei CGdiObject creati da FromHandle.

static void PASCAL DeleteTempMap();

Osservazioni:

DeleteTempMap scollega l'oggetto GDI di Windows collegato a un oggetto temporaneo CGdiObject prima di eliminare l'oggetto CGdiObject .

Esempio

// DeleteTempMap() is a static member and so does not need to
// be called within the scope of an instantiated CGdiObject object.
CGdiObject::DeleteTempMap();

CGdiObject::D etach

Scollega un oggetto GDI di Windows da un CGdiObject oggetto e restituisce un handle all'oggetto GDI di Windows.

HGDIOBJ Detach();

Valore restituito

Oggetto HANDLE per l'oggetto GDI di Windows scollegato; in caso contrario, NULL se non è associato alcun oggetto GDI.

CGdiObject::FromHandle

Restituisce un puntatore a un CGdiObject oggetto dato un handle a un oggetto GDI di Windows.

static CGdiObject* PASCAL FromHandle(HGDIOBJ hObject);

Parametri

hObject
Handle per un oggetto GDI di Windows.

Valore restituito

Puntatore a un CGdiObject oggetto che può essere temporaneo o permanente.

Osservazioni:

Se un CGdiObject oggetto non è già collegato all'oggetto GDI di Windows, viene creato e associato un oggetto temporaneo CGdiObject .

Questo oggetto temporaneo CGdiObject è valido solo fino alla successiva esecuzione del tempo di inattività dell'applicazione nel ciclo di eventi, in cui vengono eliminati tutti gli oggetti grafici temporanei. Un altro modo per dire questo è che l'oggetto temporaneo è valido solo durante l'elaborazione di un messaggio di finestra.

CGdiObject::GetObject

Riempie un buffer con dati che definiscono un oggetto specificato.

int GetObject(
    int nCount,
    LPVOID lpObject) const;

Parametri

nCount
Specifica il numero di byte da copiare nel buffer lpObject .

lpObject
Punta a un buffer fornito dall'utente che deve ricevere le informazioni.

Valore restituito

Numero di byte recuperati; in caso contrario, 0 se si verifica un errore.

Osservazioni:

La funzione recupera una struttura di dati il cui tipo dipende dal tipo di oggetto grafico, come illustrato nell'elenco seguente:

Object Tipo di buffer
CPen LOGPEN
CBrush LOGBRUSH
CFont LOGFONT
CBitmap BITMAP
CPalette WORD
CRgn Non supportato

Se l'oggetto è un CBitmap oggetto, GetObject restituisce solo le informazioni sul formato di larghezza, altezza e colore della bitmap. I bit effettivi possono essere recuperati usando CBitmap::GetBitmapBits.

Se l'oggetto è un CPalette oggetto , GetObject recupera un oggetto WORD che specifica il numero di voci nella tavolozza. La funzione non recupera la struttura LOGPALETTE che definisce la tavolozza. Un'applicazione può ottenere informazioni sulle voci del riquadro chiamando CPalette::GetPaletteEntries.

CGdiObject::GetObjectType

Recupera il tipo dell'oggetto GDI.

UINT GetObjectType() const;

Valore restituito

Tipo dell'oggetto, se riuscito; in caso contrario, 0. Il valore può essere uno dei seguenti:

  • OBJ_BITMAP Bitmap

  • pennello OBJ_BRUSH

  • tipo di carattere OBJ_FONT

  • tavolozza OBJ_PAL

  • penna OBJ_PEN

  • OBJ_EXTPEN penna estesa

  • area OBJ_REGION

  • OBJ_DC Contesto dispositivo

  • OBJ_MEMDC contesto del dispositivo memoria

  • OBJ_METAFILE Metafile

  • OBJ_METADC contesto di dispositivo Metafile

  • OBJ_ENHMETAFILE metafile avanzato

  • OBJ_ENHMETADC contesto di dispositivo metafile avanzato

CGdiObject::GetSafeHandle

Restituisce m_hObject a meno che non this sia NULL, nel qual caso viene restituito NULL.

HGDIOBJ GetSafeHandle() const;

Valore restituito

Handle all'oggetto GDI di Windows collegato; in caso contrario, NULL se non è associato alcun oggetto.

Osservazioni:

Questo fa parte del paradigma dell'interfaccia handle generale ed è utile quando NULL è un valore valido o speciale per un handle.

Esempio

Vedere l'esempio per CWnd::IsWindowEnabled.

CGdiObject::m_hObject

HANDLE contenente HBITMAP, HRGN, HBRUSH, HPEN, HPALETTE o HFONT associato a questo oggetto.

HGDIOBJ m_hObject;

CGdiObject::operator !=

Determina se due oggetti GDI sono logicamente non uguali.

BOOL operator!=(const CGdiObject& obj) const;

Parametri

obj
Puntatore a un oggetto esistente CGdiObject.

Osservazioni:

Determina se un oggetto GDI a sinistra non è uguale a un oggetto GDI a destra.

CGdiObject::operator ==

Determina se due oggetti GDI sono logicamente uguali.

BOOL operator==(const CGdiObject& obj) const;

Parametri

obj
Riferimento a un oggetto esistente CGdiObject.

Osservazioni:

Determina se un oggetto GDI a sinistra è uguale a un oggetto GDI a destra.

CGdiObject::operator HGDIOBJ

Recupera un handle all'oggetto GDI di Windows collegato; in caso contrario, NULL se non è associato alcun oggetto.

operator HGDIOBJ() const;

CGdiObject::Unobject

Reimposta l'origine di un pennello o reimposta una tavolozza logica.

BOOL UnrealizeObject();

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Mentre UnrealizeObject è una funzione membro della CGdiObject classe , deve essere richiamata solo su CBrush oggetti o CPalette .

Per CBrush gli oggetti, UnrealizeObject indirizza il sistema a reimpostare l'origine del pennello specificato alla successiva selezione in un contesto di dispositivo. Se l'oggetto è un CPalette oggetto, UnrealizeObject indirizza il sistema a realizzare la tavolozza come se non fosse stata realizzata in precedenza. La volta successiva che l'applicazione chiama la funzione CDC::RealizePalette per la tavolozza specificata, il sistema esegue completamente il mapping della tavolozza logica alla tavolozza di sistema.

La UnrealizeObject funzione non deve essere usata con oggetti stock. La UnrealizeObject funzione deve essere chiamata ogni volta che viene impostata una nuova origine pennello (tramite la funzione CDC::SetBrushOrg ). La UnrealizeObject funzione non deve essere chiamata per il pennello attualmente selezionato o la tavolozza attualmente selezionata di qualsiasi contesto di visualizzazione.

Vedi anche

Grafico della gerarchia
Classe CBitmap
Classe CBrush
Classe CFont
Classe CPalette
Classe CPen
Classe CRgn