Classe CBitmap
Incapsula una bitmap GDI (Graphics Device Interface) di Windows e fornisce funzioni membro per la modifica della bitmap.
Sintassi
class CBitmap : public CGdiObject
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CBitmap::CBitmap |
Costruisce un oggetto CBitmap . |
Metodi pubblici
Nome | Descrizione |
---|---|
CBitmap::CreateBitmap |
Inizializza l'oggetto con una bitmap di memoria dipendente dal dispositivo con una larghezza, un'altezza e un modello di bit specificati. |
CBitmap::CreateBitmapIndirect |
Inizializza l'oggetto con una bitmap con la larghezza, l'altezza e il modello di bit (se specificato) in una BITMAP struttura. |
CBitmap::CreateCompatibleBitmap |
Inizializza l'oggetto con una bitmap in modo che sia compatibile con un dispositivo specificato. |
CBitmap::CreateDiscardableBitmap |
Inizializza l'oggetto con una bitmap scartata compatibile con un dispositivo specificato. |
CBitmap::FromHandle |
Restituisce un puntatore a un CBitmap oggetto quando viene assegnato un handle a una bitmap di Windows HBITMAP . |
CBitmap::GetBitmap |
Riempie una BITMAP struttura con informazioni sulla bitmap. |
CBitmap::GetBitmapBits |
Copia i bit della bitmap specificata nel buffer specificato. |
CBitmap::GetBitmapDimension |
Restituisce la larghezza e l'altezza della bitmap. Si presuppone che l'altezza e la SetBitmapDimension larghezza siano state impostate in precedenza dalla funzione membro. |
CBitmap::LoadBitmap |
Inizializza l'oggetto caricando una risorsa bitmap denominata dal file eseguibile dell'applicazione e collegando la bitmap all'oggetto. |
CBitmap::LoadMappedBitmap |
Carica una bitmap e esegue il mapping dei colori ai colori di sistema correnti. |
CBitmap::LoadOEMBitmap |
Inizializza l'oggetto caricando una bitmap di Windows predefinita e associando la bitmap all'oggetto . |
CBitmap::SetBitmapBits |
Imposta i bit di una bitmap sui valori di bit specificati. |
CBitmap::SetBitmapDimension |
Assegna una larghezza e un'altezza a una bitmap in unità da 0,1 millimetri. |
Operatori pubblici
Nome | Descrizione |
---|---|
CBitmap::operator HBITMAP |
Restituisce l'handle di Windows associato all'oggetto CBitmap . |
Osservazioni:
Per usare un CBitmap
oggetto, costruire l'oggetto, allegare un handle bitmap a esso con una delle funzioni membro di inizializzazione e quindi chiamare le funzioni membro dell'oggetto.
Per altre informazioni sull'uso di oggetti grafici come CBitmap
, vedere Oggetti grafici.
Gerarchia di ereditarietà
CBitmap
Requisiti
Intestazione: afxwin.h
CBitmap::CBitmap
Costruisce un oggetto CBitmap
.
CBitmap();
Osservazioni:
L'oggetto risultante deve essere inizializzato con una delle funzioni membro di inizializzazione.
CBitmap::CreateBitmap
Inizializza una bitmap in memoria dipendente dal dispositivo che presenta la larghezza, l'altezza e lo schema di bit specificati.
BOOL CreateBitmap(
int nWidth,
int nHeight,
UINT nPlanes,
UINT nBitcount,
const void* lpBits);
Parametri
nWidth
Specifica la larghezza della bitmap (in pixel).
nHeight
Specifica l'altezza della bitmap (in pixel).
nPlanes
Specifica il numero dei piani di colore nella bitmap.
nBitcount
Specifica il numero di bit di colore per pixel visualizzato.
lpBits
Punta a una matrice di byte che contiene i valori iniziali dei bit della bitmap. Se è NULL
, la nuova bitmap viene lasciata non inizializzata.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
Per una bitmap a colori, il parametro nPlanes
o nBitcount
deve essere impostato su 1. Se entrambi i parametri vengono impostati su 1, CreateBitmap
crea una bitmap monocromatica.
Anche se non è possibile selezionare direttamente una bitmap per un dispositivo di visualizzazione, può essere selezionata come bitmap corrente per un "contesto di dispositivo di memoria" usando CDC::SelectObject
e copiato in qualsiasi contesto di dispositivo compatibile usando la CDC::BitBlt
funzione .
Terminate le operazioni sull'oggetto CBitmap
creato dalla funzione CreateBitmap
, selezionare la bitmap dal contesto di memoria, quindi eliminare l'oggetto CBitmap
.
Per altre informazioni, vedere la descrizione del bmBits
campo nella BITMAP
struttura. La BITMAP
struttura è descritta nella CBitmap::CreateBitmapIndirect
funzione membro.
CBitmap::CreateBitmapIndirect
Inizializza una bitmap con la larghezza, l'altezza e il modello di bit (se specificato) nella struttura a lpBitmap
cui punta .
BOOL CreateBitmapIndirect(LPBITMAP lpBitmap);
Parametri
lpBitmap
Punta a una BITMAP
struttura che contiene informazioni sulla bitmap.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
Anche se non è possibile selezionare direttamente una bitmap per un dispositivo di visualizzazione, può essere selezionata come bitmap corrente per un contesto di dispositivo di memoria usando CDC::SelectObject
e copiato in qualsiasi contesto di dispositivo compatibile usando la CDC::BitBlt
funzione o CDC::StretchBlt
. La CDC::PatBlt
funzione può copiare la bitmap per il pennello corrente direttamente nel contesto del dispositivo di visualizzazione.
Se la BITMAP
struttura a cui punta il lpBitmap
parametro è stata compilata usando la GetObject
funzione , i bit della bitmap non vengono specificati e la bitmap non è inizializzata. Per inizializzare la bitmap, un'applicazione può usare una funzione come CDC::BitBlt
o SetDIBits
per copiare i bit dalla bitmap identificata dal primo parametro di CGdiObject::GetObject
nella bitmap creata da CreateBitmapIndirect
.
Al termine dell'operazione con l'oggetto creato con CreateBitmapIndirect
la CBitmap
funzione, selezionare prima di tutto la bitmap dal contesto del dispositivo, quindi eliminare l'oggettoCBitmap
.
CBitmap::CreateCompatibleBitmap
Inizializza una bitmap compatibile con il dispositivo specificato da pDC
.
BOOL CreateCompatibleBitmap(
CDC* pDC,
int nWidth,
int nHeight);
Parametri
pDC
Specifica il contesto del dispositivo.
nWidth
Specifica la larghezza della bitmap (in pixel).
nHeight
Specifica l'altezza della bitmap (in pixel).
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
La bitmap ha lo stesso numero di piani di colore o lo stesso formato bit per pixel del contesto di dispositivo specificato. Può essere selezionato come bitmap corrente per qualsiasi dispositivo di memoria compatibile con quello specificato da pDC
.
Se pDC
è un contesto di dispositivo di memoria, la bitmap restituita ha lo stesso formato della bitmap attualmente selezionata nel contesto del dispositivo. Un "contesto del dispositivo di memoria" è un blocco di memoria che rappresenta una superficie di visualizzazione. Può essere usato per preparare le immagini in memoria prima di copiarle nella superficie di visualizzazione effettiva del dispositivo compatibile.
Quando viene creato un contesto di dispositivo di memoria, GDI seleziona automaticamente una bitmap di magazzino monocromatica.
Poiché un contesto di dispositivo di memoria a colori può avere bitmap a colori o monocromatiche selezionate, il formato della bitmap restituita dalla CreateCompatibleBitmap
funzione non è sempre lo stesso. Tuttavia, il formato di una bitmap compatibile per un contesto di dispositivo nonmemorio è sempre nel formato del dispositivo.
Al termine dell'operazione con l'oggetto CBitmap
creato con la CreateCompatibleBitmap
funzione, selezionare prima la bitmap dal contesto di dispositivo, quindi eliminare l'oggetto CBitmap
.
CBitmap::CreateDiscardableBitmap
Inizializza una bitmap scartata compatibile con il contesto di dispositivo identificato da pDC
.
BOOL CreateDiscardableBitmap(
CDC* pDC,
int nWidth,
int nHeight);
Parametri
pDC
Specifica un contesto di dispositivo.
nWidth
Specifica la larghezza, espressa in bit, della bitmap.
nHeight
Specifica l'altezza (in bit) della bitmap.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
La bitmap ha lo stesso numero di piani di colore o lo stesso formato bit per pixel del contesto di dispositivo specificato. Un'applicazione può selezionare questa bitmap come bitmap corrente per un dispositivo di memoria compatibile con quello specificato da pDC
.
Windows può eliminare una bitmap creata da questa funzione solo se un'applicazione non l'ha selezionata in un contesto di visualizzazione. Se Windows rimuove la bitmap quando non è selezionata e l'applicazione tenta di selezionarla in un secondo momento, la CDC::SelectObject
funzione restituirà NULL.
Al termine dell'operazione con l'oggetto CBitmap
creato con la CreateDiscardableBitmap
funzione, selezionare prima la bitmap dal contesto di dispositivo, quindi eliminare l'oggetto CBitmap
.
CBitmap::FromHandle
Restituisce un puntatore a un CBitmap
oggetto quando viene assegnato un handle a una bitmap GDI di Windows.
static CBitmap* PASCAL FromHandle(HBITMAP hBitmap);
Parametri
hBitmap
Specifica una bitmap GDI di Windows.
Valore restituito
Puntatore a un CBitmap
oggetto se ha esito positivo; in caso contrario NULL
, .
Osservazioni:
Se un CBitmap
oggetto non è già collegato all'handle, viene creato e collegato un oggetto temporaneo CBitmap
. Questo oggetto temporaneo CBitmap
è valido solo fino alla successiva volta che l'applicazione ha tempo di inattività 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.
CBitmap::GetBitmap
Recupera le proprietà dell'immagine per la bitmap associata.
int GetBitmap(BITMAP* pBitMap);
Parametri
pBitMap
Puntatore a una BITMAP
struttura che riceverà le proprietà dell'immagine. Questo parametro non deve essere NULL
.
Valore restituito
Diverso da zero se il metodo ha avuto esito positivo; in caso contrario, 0.
Osservazioni:
CBitmap::GetBitmapBits
Copia il modello di bit della bitmap associata nel buffer specificato.
DWORD GetBitmapBits(
DWORD dwCount,
LPVOID lpBits) const;
Parametri
dwCount
Numero di byte da copiare nel buffer.
lpBits
Puntatore al buffer che riceverà la bitmap.
Valore restituito
Numero di byte copiati nel buffer se il metodo ha avuto esito positivo; in caso contrario, 0.
Osservazioni:
Usare CBitmap::GetBitmap
per determinare le dimensioni del buffer necessarie.
CBitmap::GetBitmapDimension
Restituisce la larghezza e l'altezza della bitmap.
CSize GetBitmapDimension() const;
Valore restituito
Larghezza e altezza della bitmap, misurata in unità di 0,1 millimetri. L'altezza cy
si trova nel membro dell'oggetto CSize
e la larghezza è nel cx
membro. Se la larghezza e l'altezza della bitmap non sono state impostate tramite SetBitmapDimension
, il valore restituito è 0.
Osservazioni:
Si presuppone che l'altezza e la larghezza siano state impostate in precedenza usando la SetBitmapDimension
funzione membro.
CBitmap::LoadBitmap
Carica la risorsa bitmap denominata da lpszResourceName
o identificata dal numero ID in nIDResource
dal file eseguibile dell'applicazione.
BOOL LoadBitmap(LPCTSTR lpszResourceName);
BOOL LoadBitmap(UINT nIDResource);
Parametri
lpszResourceName
Punta a una stringa con terminazione Null contenente il nome della risorsa bitmap.
nIDResource
Specifica il numero ID risorsa della risorsa bitmap.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
La bitmap caricata è collegata all'oggetto CBitmap
.
Se la bitmap identificata da lpszResourceName
non esiste o se la memoria non è sufficiente per caricare la bitmap, la funzione restituisce 0.
È possibile usare la CGdiObject::DeleteObject
funzione per eliminare la bitmap caricata dalla LoadBitmap
funzione oppure il CBitmap
distruttore eliminerà automaticamente l'oggetto.
Attenzione
Prima di eliminare l'oggetto, assicurarsi che non sia selezionato in un contesto di dispositivo.
Le bitmap seguenti sono state aggiunte a Windows versioni 3.1 e successive:
OBM_UPARRROWIOBM_DNARROWIOBM_RGARROWIOBM_LFARROWI
Queste bitmap non sono disponibili nei driver di dispositivo per Windows versioni 3.0 e precedenti. Per un elenco completo delle bitmap e una visualizzazione dell'aspetto, vedi Windows SDK.
CBitmap::LoadMappedBitmap
Chiamare questa funzione membro per caricare una bitmap ed eseguire il mapping dei colori ai colori di sistema correnti.
BOOL LoadMappedBitmap(
UINT nIDBitmap,
UINT nFlags = 0,
LPCOLORMAP lpColorMap = NULL,
int nMapSize = 0);
Parametri
nIDBitmap
ID della risorsa bitmap.
nFlags
Flag per una bitmap. Può essere zero o CMB_MASKED
.
lpColorMap
Puntatore a una COLORMAP
struttura che contiene le informazioni sul colore necessarie per eseguire il mapping delle bitmap. Se questo parametro è NULL
, la funzione usa la mappa colori predefinita.
nMapSize
Numero di mappe colori a lpColorMap
cui punta .
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
Per impostazione predefinita, LoadMappedBitmap
eseguirà il mapping dei colori comunemente usati nei glifi dei pulsanti.
Per informazioni sulla creazione di una bitmap mappata, vedere la funzione CreateMappedBitmap
di Windows e la COLORMAP
struttura in Windows SDK.
CBitmap::LoadOEMBitmap
Carica una bitmap predefinita usata da Windows.
BOOL LoadOEMBitmap(UINT nIDBitmap);
Parametri
nIDBitmap
Numero ID della bitmap di Windows predefinita. I valori possibili sono elencati di seguito da WINDOWS.H
:
OBM_BTNCORNERS
OBM_BTSIZE
OBM_CHECK
OBM_CHECKBOXES
OBM_CLOSE
OBM_COMBO
OBM_DNARROW
OBM_DNARROWD
OBM_DNARROWI
OBM_LFARROW
OBM_LFARROWD
OBM_LFARROWI
OBM_MNARROW
OBM_OLD_CLOSE
OBM_OLD_DNARROW
OBM_OLD_LFARROW
OBM_OLD_REDUCE
OBM_OLD_RESTORE
OBM_OLD_RGARROW
OBM_OLD_UPARROW
OBM_OLD_ZOOM
OBM_REDUCE
OBM_REDUCED
OBM_RESTORE
OBM_RESTORED
OBM_RGARROW
OBM_RGARROWD
OBM_RGARROWI
OBM_SIZE
OBM_UPARROW
OBM_UPARROW
OBM_UPARROWD
OBM_ZOOM
OBM_ZOOMD
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
I nomi bitmap che iniziano con OBM_OLD
rappresentano bitmap usate dalle versioni di Windows precedenti alla 3.0.
Si noti che la costante OEMRESOURCE
deve essere definita prima di includere WINDOWS.H
per usare una delle OBM_
costanti .
CBitmap::operator HBITMAP
Utilizzare questo operatore per ottenere l'handle GDI di Windows collegato dell'oggetto CBitmap
.
operator HBITMAP() const;
Valore restituito
In caso di esito positivo, un handle per l'oggetto GDI di Windows rappresentato dall'oggetto CBitmap
; in caso contrario NULL
, .
Osservazioni:
Questo operatore è un operatore di cast che supporta l'uso diretto di un HBITMAP
oggetto .
Per altre informazioni sull'uso di oggetti grafici, vedere Oggetti grafici in Windows SDK.
CBitmap::SetBitmapBits
Imposta i bit di una bitmap sui valori di bit specificati da lpBits
.
DWORD SetBitmapBits(
DWORD dwCount,
const void* lpBits);
Parametri
dwCount
Specifica il numero di byte a lpBits
cui punta .
lpBits
Punta alla BYTE
matrice che contiene i valori pixel da copiare nell'oggetto CBitmap
. Affinché la bitmap sia in grado di eseguire correttamente il rendering dell'immagine, i valori devono essere formattati in modo che siano conformi ai valori di altezza, larghezza e profondità colore specificati al momento della creazione dell'istanza CBitmap
. Per ulteriori informazioni, vedere CBitmap::CreateBitmap
.
Valore restituito
Numero di byte usati per impostare i bit bitmap; 0 se la funzione ha esito negativo.
CBitmap::SetBitmapDimension
Assegna una larghezza e un'altezza a una bitmap in unità da 0,1 millimetri.
CSize SetBitmapDimension(
int nWidth,
int nHeight);
Parametri
nWidth
Specifica la larghezza della bitmap (in unità da 0,1 millimetri).
nHeight
Specifica l'altezza della bitmap (in unità di 0,1 millimetri).
Valore restituito
Dimensioni bitmap precedenti. L'altezza cy
si trova nella variabile membro dell'oggetto CSize
e la larghezza è nella cx
variabile membro.
Osservazioni:
L'GDI non usa questi valori tranne per restituirli quando un'applicazione chiama la GetBitmapDimension
funzione membro.
Vedi anche
MDI di esempio MFC
CGdiObject
Classe
Grafico della gerarchia