Partilhar via


CBitmap Classe

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Encapsula um bitmap da interface gráfica do dispositivo gráfico (GDI) do Windows e fornece funções aos membros para manipular o bitmap.

Sintaxe

class CBitmap : public CGdiObject

Membros

Construtores Públicos

Nome Description
CBitmap::CBitmap Constrói um CBitmap objeto.

Métodos Públicos

Nome Description
CBitmap::CreateBitmap Inicializa o objeto com um bitmap de memória dependente do dispositivo, que tem uma largura, altura e padrão de bits especificados.
CBitmap::CreateBitmapIndirect Inicializa o objeto com um bitmap com a largura, altura e padrão de bits (se for especificado) dados numa BITMAP estrutura.
CBitmap::CreateCompatibleBitmap Inicializa o objeto com um bitmap para que seja compatível com um dispositivo especificado.
CBitmap::CreateDiscardableBitmap Inicializa o objeto com um bitmap descartável compatível com um dispositivo especificado.
CBitmap::FromHandle Devolve um ponteiro para um CBitmap objeto quando é atribuído um handle a um bitmap do Windows HBITMAP .
CBitmap::GetBitmap Preenche uma BITMAP estrutura com informação sobre o bitmap.
CBitmap::GetBitmapBits Copia os bits do bitmap especificado para o buffer especificado.
CBitmap::GetBitmapDimension Devolve a largura e a altura do bitmap. Assume-se que a altura e a largura foram previamente definidas pela SetBitmapDimension função elementar.
CBitmap::LoadBitmap Inicializa o objeto carregando um recurso bitmap nomeado a partir do ficheiro executável da aplicação e anexando o bitmap ao objeto.
CBitmap::LoadMappedBitmap Carrega um bitmap e mapeia as cores para as cores atuais do sistema.
CBitmap::LoadOEMBitmap Inicializa o objeto carregando um bitmap pré-definido do Windows e anexando o bitmap ao objeto.
CBitmap::SetBitmapBits Define os bits de um bitmap para os valores de bits especificados.
CBitmap::SetBitmapDimension Atribui largura e altura a um bitmap em unidades de 0,1 milímetros.

Operadores Públicos

Nome Description
CBitmap::operator HBITMAP Devolve a alavanca do Windows ligada ao CBitmap objeto.

Observações

Para usar um CBitmap objeto, constrói o objeto, anexa-lhe um handle bitmap com uma das funções membros de inicialização e depois chama as funções membros do objeto.

Para mais informações sobre o uso de objetos gráficos como CBitmap, veja Objetos Gráficos.

Hierarquia de herança

CObject

CGdiObject

CBitmap

Requerimentos

Cabeçalho:afxwin.h

CBitmap::CBitmap

Constrói um CBitmap objeto.

CBitmap();

Observações

O objeto resultante deve ser inicializado com uma das funções membros de inicialização.

CBitmap::CreateBitmap

Inicializa um bitmap de memória dependente do dispositivo que tem a largura, altura e padrão de bits especificados.

BOOL CreateBitmap(
    int nWidth,
    int nHeight,
    UINT nPlanes,
    UINT nBitcount,
    const void* lpBits);

Parâmetros

nWidth
Especifica a largura (em pixels) do bitmap.

nHeight
Especifica a altura (em pixels) do bitmap.

nPlanes
Especifica o número de planos de cor no bitmap.

nBitcount
Especifica o número de bits de cor por pixel do ecrã.

lpBits
Aponta para um array de bytes que contém os valores iniciais do bitmap. Se for NULL, o novo bitmap fica por inicializar.

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

Para um bitmap de cores, o nPlanes parâmetro ou nBitcount deve ser definido como 1. Se ambos os parâmetros estiverem definidos para 1, CreateBitmap cria-se um bitmap monocromático.

Embora um bitmap não possa ser selecionado diretamente para um dispositivo de visualização, pode ser selecionado como o bitmap atual para um "contexto de dispositivo de memória" usando CDC::SelectObject e copiado para qualquer contexto compatível de dispositivo através da CDC::BitBlt função.

Quando terminares com o CBitmap objeto criado pela CreateBitmap função, primeiro seleciona o bitmap fora do contexto do dispositivo e depois elimina o CBitmap objeto.

Para mais informações, consulte a descrição do bmBits campo na BITMAP estrutura. A BITMAP estrutura é descrita sob a CBitmap::CreateBitmapIndirect função membro.

CBitmap::CreateBitmapIndirect

Inicializa um bitmap que tem a largura, altura e padrão de bits (se for especificado) dados na estrutura apontada por lpBitmap.

BOOL CreateBitmapIndirect(LPBITMAP lpBitmap);

Parâmetros

lpBitmap
Aponta para uma BITMAP estrutura que contém informação sobre o bitmap.

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

Embora um bitmap não possa ser selecionado diretamente para um dispositivo de visualização, pode ser selecionado como o bitmap atual para o contexto de um dispositivo de memória usando CDC::SelectObject e copiado para qualquer contexto compatível de dispositivo usando a CDC::BitBlt função ou CDC::StretchBlt . (A CDC::PatBlt função pode copiar o bitmap do pincel atual diretamente para o contexto do dispositivo de visualização.)

Se a BITMAP estrutura apontada pelo lpBitmap parâmetro foi preenchida usando a GetObject função, os bits do bitmap não são especificados e o bitmap não está inicializado. Para inicializar o bitmap, uma aplicação pode usar uma função como CDC::BitBlt ou SetDIBits para copiar os bits do bitmap identificado pelo primeiro parâmetro de CGdiObject::GetObject para o bitmap criado por CreateBitmapIndirect.

Quando terminares com o CBitmap objeto criado com CreateBitmapIndirect função, primeiro seleciona o bitmap fora do contexto do dispositivo e depois elimina o CBitmap objeto.

CBitmap::CreateCompatibleBitmap

Inicializa um bitmap compatível com o dispositivo especificado por pDC.

BOOL CreateCompatibleBitmap(
    CDC* pDC,
    int nWidth,
    int nHeight);

Parâmetros

pDC
Especifica o contexto do dispositivo.

nWidth
Especifica a largura (em pixels) do bitmap.

nHeight
Especifica a altura (em pixels) do bitmap.

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

O bitmap tem o mesmo número de planos de cor ou o mesmo formato de bits por píxel que o contexto especificado do dispositivo. Pode ser selecionado como bitmap atual para qualquer dispositivo de memória compatível com o especificado por pDC.

Se pDC for um contexto de dispositivo de memória, o bitmap devolvido tem o mesmo formato que o bitmap atualmente selecionado nesse contexto do dispositivo. Um "contexto de dispositivo de memória" é um bloco de memória que representa uma superfície de visualização. Pode ser usado para preparar imagens na memória antes de as copiar para a superfície de ecrã real do dispositivo compatível.

Quando um contexto de dispositivo de memória é criado, o GDI seleciona automaticamente um bitmap monocromático stock para ele.

Como o contexto de um dispositivo de memória de cor pode ter bitmaps de cor ou monocromáticos selecionados, o formato do bitmap devolvido pela CreateCompatibleBitmap função nem sempre é o mesmo; no entanto, o formato de um bitmap compatível para um contexto de dispositivo sem memória está sempre no formato do dispositivo.

Quando terminares com o CBitmap objeto criado com a CreateCompatibleBitmap função, primeiro seleciona o bitmap fora do contexto do dispositivo e depois elimina o CBitmap objeto.

CBitmap::CreateDiscardableBitmap

Inicializa um bitmap descartável que seja compatível com o contexto do dispositivo identificado por pDC.

BOOL CreateDiscardableBitmap(
    CDC* pDC,
    int nWidth,
    int nHeight);

Parâmetros

pDC
Especifica o contexto de um dispositivo.

nWidth
Especifica a largura (em bits) do bitmap.

nHeight
Especifica a altura (em bits) do bitmap.

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

O bitmap tem o mesmo número de planos de cor ou o mesmo formato de bits por píxel que o contexto especificado do dispositivo. Uma aplicação pode selecionar este bitmap como o bitmap atual para um dispositivo de memória compatível com o especificado por pDC.

O Windows só pode descartar um bitmap criado por esta função se uma aplicação não o tiver selecionado para um contexto de visualização. Se o Windows descartar o bitmap quando este não está selecionado e a aplicação tentar posteriormente selecioná-lo, a CDC::SelectObject função devolverá NULL.

Quando terminares com o CBitmap objeto criado com a CreateDiscardableBitmap função, primeiro seleciona o bitmap fora do contexto do dispositivo e depois elimina o CBitmap objeto.

CBitmap::FromHandle

Devolve um ponteiro para um CBitmap objeto quando recebe um handle para um bitmap do Windows GDI.

static CBitmap* PASCAL FromHandle(HBITMAP hBitmap);

Parâmetros

hBitmap
Especifica um bitmap GDI do Windows.

Valor de retorno

Um ponteiro para um CBitmap objeto, se bem-sucedido, caso contrário NULL.

Observações

Se um CBitmap objeto não estiver já ligado à pega, um objeto temporário CBitmap é criado e anexado. Este objeto temporário CBitmap é válido apenas até à próxima vez que a aplicação tiver tempo de inatividade no seu ciclo de eventos, altura em que todos os objetos gráficos temporários são eliminados. Outra forma de dizer isto é que o objeto temporário só é válido durante o processamento de uma mensagem de janela.

CBitmap::GetBitmap

Recupera as propriedades da imagem para o bitmap anexado.

int GetBitmap(BITMAP* pBitMap);

Parâmetros

pBitMap
Apontar para uma BITMAP estrutura que irá receber as propriedades da imagem. Este parâmetro não deve ser NULL.

Valor de retorno

Não nulo se o método fosse bem-sucedido; caso contrário, 0.

Observações

CBitmap::GetBitmapBits

Copia o padrão de bits do bitmap associado para o buffer especificado.

DWORD GetBitmapBits(
    DWORD dwCount,
    LPVOID lpBits) const;

Parâmetros

dwCount
O número de bytes a copiar para o buffer.

lpBits
Aponta para o buffer que irá receber o bitmap.

Valor de retorno

O número de bytes copiados para o buffer se o método fosse bem-sucedido; caso contrário, 0.

Observações

Use CBitmap::GetBitmap para determinar o tamanho do buffer necessário.

CBitmap::GetBitmapDimension

Devolve a largura e a altura do bitmap.

CSize GetBitmapDimension() const;

Valor de retorno

A largura e altura do bitmap, medidas em unidades de 0,1 milímetros. A altura está no cy elemento do CSize objeto, e a largura está no cx membro. Se a largura e altura do bitmap não forem definidas usando SetBitmapDimension, o valor de retorno é 0.

Observações

Assume-se que a altura e a largura foram definidas anteriormente usando a SetBitmapDimension função elemento.

CBitmap::LoadBitmap

Carrega o recurso bitmap nomeado por lpszResourceName ou identificado pelo número ID a nIDResource partir do ficheiro executável da aplicação.

BOOL LoadBitmap(LPCTSTR lpszResourceName);
BOOL LoadBitmap(UINT nIDResource);

Parâmetros

lpszResourceName
Aponta para uma cadeia terminada por null que contém o nome do recurso bitmap.

nIDResource
Especifica o número de ID do recurso do bitmap.

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

O bitmap carregado está associado ao CBitmap objeto.

Se o bitmap identificado por lpszResourceName não existir ou se houver memória insuficiente para carregar o bitmap, a função devolve 0.

Podes usar a CGdiObject::DeleteObject função para eliminar bitmap carregado pela LoadBitmap função, ou o CBitmap destruidor apaga o objeto por ti.

Atenção

Antes de apagares o objeto, certifica-te de que não está selecionado para o contexto de um dispositivo.

Os seguintes bitmaps foram adicionados às versões 3.1 e posteriores do Windows:

OBM_UPARRROWIOBM_DNARROWIOBM_RGARROWIOBM_LFARROWI

Estes bitmaps não se encontram nos drivers de dispositivos para versões 3.0 do Windows e anteriores. Para uma lista completa de bitmaps e uma visualização da sua aparência, consulte o SDK do Windows.

CBitmap::LoadMappedBitmap

Chame esta função membro para carregar um bitmap e mapear as cores para as cores atuais do sistema.

BOOL LoadMappedBitmap(
    UINT nIDBitmap,
    UINT nFlags = 0,
    LPCOLORMAP lpColorMap = NULL,
    int nMapSize = 0);

Parâmetros

nIDBitmap
O ID do recurso bitmap.

nFlags
Uma bandeira para um bitmap. Pode ser zero ou CMB_MASKED.

lpColorMap
Um ponteiro para uma COLORMAP estrutura que contém a informação de cor necessária para mapear os bitmaps. Se este parâmetro for NULL, a função usa o mapa de cores padrão.

nMapSize
O número de mapas de cor apontado por lpColorMap.

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

Por defeito, LoadMappedBitmap irá mapear as cores comumente usadas em glifos de botões.

Para informações sobre como criar um bitmap mapeado, veja a função CreateMappedBitmap do Windows e a COLORMAP estrutura no SDK do Windows.

CBitmap::LoadOEMBitmap

Carrega um bitmap pré-definido usado pelo Windows.

BOOL LoadOEMBitmap(UINT nIDBitmap);

Parâmetros

nIDBitmap
Número ID do bitmap pré-definido do Windows. Os valores possíveis estão listados abaixo a partir de 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

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

Os nomes de bitmaps que começam por OBM_OLD representam bitmaps usados pelas versões do Windows anteriores à 3.0.

Note-se que a constante OEMRESOURCE deve ser definida antes de incluir WINDOWS.H para poder usar qualquer uma das OBM_ constantes.

CBitmap::operator HBITMAP

Use este operador para obter o handle Windows GDI associado do CBitmap objeto.

operator HBITMAP() const;

Valor de retorno

Se for bem-sucedido, um handle para o objeto Windows GDI representado pelo CBitmap objeto; caso contrário NULL.

Observações

Este operador é um operador de casting, que suporta o uso direto de um HBITMAP objeto.

Para mais informações sobre o uso de objetos gráficos, consulte Objetos Gráficos no SDK do Windows.

CBitmap::SetBitmapBits

Define os bits de um bitmap para os valores de bits dados por lpBits.

DWORD SetBitmapBits(
    DWORD dwCount,
    const void* lpBits);

Parâmetros

dwCount
Especifica o número de bytes apontados por lpBits.

lpBits
Aponta para o BYTE array que contém os valores dos píxeis a serem copiados para o CBitmap objeto. Para que o bitmap consiga renderizar corretamente a sua imagem, os valores devem ser formatados de acordo com os valores de altura, largura e profundidade de cor especificados quando a CBitmap instância foi criada. Para obter mais informações, consulte CBitmap::CreateBitmap.

Valor de retorno

O número de bytes usados na definição dos bits bitmap; 0 se a função falhar.

CBitmap::SetBitmapDimension

Atribui largura e altura a um bitmap em unidades de 0,1 milímetros.

CSize SetBitmapDimension(
    int nWidth,
    int nHeight);

Parâmetros

nWidth
Especifica a largura do bitmap (em unidades de 0,1 milímetros).

nHeight
Especifica a altura do bitmap (em unidades de 0,1 milímetros).

Valor de retorno

As dimensões do bitmap anterior. A altura está na cy variável membro do CSize objeto, e a largura está na cx variável elemento.

Observações

O GDI não utiliza estes valores exceto para os devolver quando uma aplicação chama a GetBitmapDimension função membro.

Consulte também

Exemplo MFC de MDI
CGdiObject Classe
Gráfico de Hierarquia