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à
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