Condividi tramite


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à

CObject

CGdiObject

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 lpBitmapcui 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 lpColorMapcui 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 lpBitscui 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