Partilhar via


Classe CGdiObject

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.

Fornece uma classe base para vários tipos de objetos da interface gráfica (GDI) do Windows, como bitmaps, regiões, pincéis, canetas, paletas e fontes.

Sintaxe

class CGdiObject : public CObject

Membros

Construtores Públicos

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

Métodos Públicos

Nome Description
CGdiObject::Anexar Anexa um objeto Windows GDI a um CGdiObject objeto.
CGdiObject::CreateStockObject Recupera um handle de uma das canetas, pincéis ou fontes de stock pré-definidos do Windows.
CGdiObject::D eleteObject Elimina o objeto Windows GDI associado ao CGdiObject objeto da memória, libertando todo o armazenamento do sistema associado ao objeto.
CGdiObject::D eleteTempMap Elimina quaisquer objetos temporários CGdiObject criados por FromHandle.
CGdiObject::D etach Desanexa um objeto Windows GDI de um CGdiObject objeto e devolve um handle ao objeto Windows GDI.
CGdiObject::FromHandle Devolve um ponteiro para um CGdiObject objeto dado como handle a um objeto Windows GDI.
CGdiObject::GetObject Preenche um buffer com dados que descrevem o objeto Windows GDI associado ao CGdiObject objeto.
CGdiObject::GetObjectType Recupera o tipo do objeto GDI.
CGdiObject::GetSafeHandle Retorna m_hObject a menos que this seja NULL, caso em que NULL é devolvido.
CGdiObject::UnrealizeObject Reinicia a origem de um pincel ou reinicia uma paleta lógica.

Operadores Públicos

Nome Description
CGdiObject::operator != Determina se dois objetos GDI são logicamente iguais.
CGdiObject::operator == Determina se dois objetos GDI são logicamente iguais.
CGdiObject::operador HGDIOBJ Recupera um HANDLE para o objeto Windows GDI anexado.

Membros de Dados Públicos

Nome Description
CGdiObject::m_hObject Um HANDLE contendo o HBITMAP, HPALETTE, HRGN, HBRUSH, HPEN ou HFONT ligado a este objeto.

Observações

Nunca se cria um CGdiObject direto. Em vez disso, cria-se um objeto a partir de uma das suas classes derivadas, como CPen ou CBrush.

Para mais informações sobre CGdiObject, veja Objetos Gráficos.

Hierarquia de herança

CObject

CGdiObject

Requerimentos

Cabeçalho: afxwin.h

CGdiObject::Anexar

Anexa um objeto Windows GDI a um CGdiObject objeto.

BOOL Attach(HGDIOBJ hObject);

Parâmetros

hObjeto
Um HANDLE para um objeto Windows GDI (por exemplo, HPEN ou HBRUSH).

Valor de retorno

Não nulo se a ligação for bem-sucedida; caso contrário, 0.

CGdiObject::CGdiObject

Constrói um CGdiObject objeto.

CGdiObject();

Observações

Nunca se cria um CGdiObject direto. Em vez disso, cria-se um objeto a partir de uma das suas classes derivadas, como CPen ou Cbrush.

CGdiObject::CreateStockObject

Recupera um handle de uma das canetas, pincéis ou fontes pré-definidos do Windows GDI e anexa o objeto GDI ao CGdiObject objeto.

BOOL CreateStockObject(int nIndex);

Parâmetros

nIndex
Uma constante que especifica o tipo de objeto padrão desejado. Consulte o parâmetro fnObject para GetStockObject no SDK do Windows para uma descrição dos valores apropriados.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Observações

Chame esta função com uma das classes derivadas que corresponde ao tipo de objeto GDI do Windows, como CPen para uma caneta stock.

CGdiObject::D eleteObject

Elimina o objeto Windows GDI associado da memória ao libertar todo o armazenamento do sistema associado ao objeto Windows GDI.

BOOL DeleteObject();

Valor de retorno

Não nulo se o objeto GDI fosse eliminado com sucesso; caso contrário, 0.

Observações

O armazenamento associado ao CGdiObject objeto não é afetado por esta chamada. Uma aplicação não deve chamar DeleteObject um CGdiObject objeto que está atualmente selecionado para o contexto de um dispositivo.

Quando um pincel de padrão é eliminado, o bitmap associado ao pincel não é eliminado. O bitmap tem de ser eliminado de forma independente.

CGdiObject::D eleteTempMap

Chamada automaticamente pelo CWinApp handler de tempo ocioso, DeleteTempMap elimina quaisquer objetos temporários CGdiObject criados por FromHandle.

static void PASCAL DeleteTempMap();

Observações

DeleteTempMap desanexa o objeto Windows GDI associado a um objeto temporário CGdiObject antes de eliminar o CGdiObject objeto.

Example

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

Desanexa um objeto Windows GDI de um CGdiObject objeto e devolve um handle ao objeto Windows GDI.

HGDIOBJ Detach();

Valor de retorno

A para o objeto GDI do Windows destacado; caso contrário, HANDLE NULL se não houver nenhum objeto GDI anexado.

CGdiObject::FromHandle

Devolve um ponteiro para um CGdiObject objeto dado como handle a um objeto Windows GDI.

static CGdiObject* PASCAL FromHandle(HGDIOBJ hObject);

Parâmetros

hObjeto
Um HANDLE para um objeto Windows GDI.

Valor de retorno

Uma pista para algo CGdiObject que pode ser temporário ou permanente.

Observações

Se um CGdiObject objeto não estiver já anexado ao objeto Windows GDI, um objeto temporário CGdiObject é criado e anexado.

Este objeto temporário CGdiObject só é válido 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.

CGdiObject::GetObject

Preenche um buffer com dados que definem um objeto especificado.

int GetObject(
    int nCount,
    LPVOID lpObject) const;

Parâmetros

nCount
Especifica o número de bytes a copiar para o buffer lpObject .

lpObject
Aponta para um buffer fornecido pelo utilizador que deve receber a informação.

Valor de retorno

O número de bytes recuperados; caso contrário, 0 se ocorrer um erro.

Observações

A função recupera uma estrutura de dados cujo tipo depende do tipo de objeto gráfico, como mostrado pela seguinte lista:

Objeto Tipo de buffer
CPen LOGPEN
CBrush ESCOVA DE TRONCOS
CFont LOGFONT
CBitmap BITMAP
CPalette PALAVRA
CRgn Não suportado

Se o objeto for um CBitmap objeto, GetObject devolve apenas a largura, altura e formato de cor do bitmap. Os bits reais podem ser recuperados usando CBitmap::GetBitmapBits.

Se o objeto for um CPalette objeto, GetObject recupera um WORD que especifica o número de entradas na paleta. A função não recupera a estrutura LOGPALETTE que define a paleta. Uma aplicação pode obter informações sobre entradas de paleta chamando CPalette::GetPaletteEntrries.

CGdiObject::GetObjectType

Recupera o tipo do objeto GDI.

UINT GetObjectType() const;

Valor de retorno

O tipo do objeto, se for bem-sucedido; caso contrário, 0. O valor pode ser um dos seguintes:

  • OBJ_BITMAP Bitmap

  • OBJ_BRUSH Brush

  • OBJ_FONT Fonte

  • OBJ_PAL Paleta

  • OBJ_PEN Pen

  • OBJ_EXTPEN Pen estendido

  • OBJ_REGION Região

  • OBJ_DC Contexto do dispositivo

  • OBJ_MEMDC Contexto do dispositivo de memória

  • OBJ_METAFILE Metaficheiro

  • OBJ_METADC Contexto do dispositivo Metafile

  • OBJ_ENHMETAFILE Metaficheiro melhorado

  • OBJ_ENHMETADC Contexto do dispositivo com metaficheiro aprimorado

CGdiObject::GetSafeHandle

Retorna m_hObject a menos que this seja NULL, caso em que NULL é devolvido.

HGDIOBJ GetSafeHandle() const;

Valor de retorno

Um HANDLE para o objeto Windows GDI anexado; caso contrário, NULL se nenhum objeto for anexado.

Observações

Isto faz parte do paradigma geral da interface de handle e é útil quando NULL é um valor válido ou especial para um handle.

Example

Veja o exemplo de CWnd::IsWindowEnabled.

CGdiObject::m_hObject

Um HANDLE contendo o HBITMAP, HRGN, HBRUSH, HPEN, HPALETTE ou HFONT ligado a este objeto.

HGDIOBJ m_hObject;

CGdiObject::operator !=

Determina se dois objetos GDI são logicamente iguais.

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

Parâmetros

obj
Um apontador para um .CGdiObject

Observações

Determina se um objeto GDI no lado esquerdo não é igual a um objeto GDI no lado direito.

CGdiObject::operator ==

Determina se dois objetos GDI são logicamente iguais.

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

Parâmetros

obj
Uma referência a um .CGdiObject

Observações

Determina se um objeto GDI no lado esquerdo é igual a um objeto GDI do lado direito.

CGdiObject::operador HGDIOBJ

Recupera um HANDLE para o objeto Windows GDI anexado; caso contrário, NULL se nenhum objeto for anexado.

operator HGDIOBJ() const;

CGdiObject::UnrealizeObject

Reinicia a origem de um pincel ou reinicia uma paleta lógica.

BOOL UnrealizeObject();

Valor de retorno

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

Observações

Embora UnrealizeObject seja uma função membro da CGdiObject classe, deve ser invocada apenas em CBrush ou CPalette objetos.

Para CBrush objetos, UnrealizeObject direciona o sistema para reiniciar a origem do pincel dado na próxima vez que for selecionado para o contexto de um dispositivo. Se o objeto for um CPalette objeto, UnrealizeObject dirige o sistema para realizar a paleta como se não tivesse sido previamente realizada. Da próxima vez que a aplicação chama a função CDC::RealizePalette para a paleta especificada, o sistema remapeia completamente a paleta lógica para a paleta do sistema.

A UnrealizeObject função não deve ser usada com objetos de origem. A UnrealizeObject função deve ser chamada sempre que uma nova origem de pincel é definida (através da função CDC::SetBrushOrg ). A UnrealizeObject função não deve ser chamada para o pincel atualmente selecionado ou para a paleta selecionada em qualquer contexto de visualização.

Consulte também

Gráfico de Hierarquia
Classe CBitmap
Classe CBrush
Classe CFont
Classe CPalette
Classe CPen
Classe CRgn