Partilhar via


Classe CGdiObject

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

Sintaxe

class CGdiObject : public CObject

Membros

Construtores públicos

Nome Descrição
CGdiObject::CGdiObject Constrói um objeto CGdiObject.

Métodos públicos

Nome Descrição
CGdiObject::Attach Anexa um objeto GDI do Windows a um objeto CGdiObject.
CGdiObject::CreateStockObject Recupera um identificador para uma das canetas, pincéis ou fontes predefinidas do Windows.
CGdiObject::DeleteObject Exclui o objeto GDI do Windows anexado ao objeto CGdiObject da memória liberando todo o armazenamento do sistema associado ao objeto.
CGdiObject::DeleteTempMap Exclui todos os objetos CGdiObject temporários criados por FromHandle.
CGdiObject::Detach Desanexa um objeto GDI do Windows de um objeto CGdiObject e retorna um identificador para o objeto GDI do Windows.
CGdiObject::FromHandle Retorna um ponteiro para um objeto CGdiObject dado um identificador para um objeto GDI do Windows.
CGdiObject::GetObject Preenche um buffer com os dados que descrevem o objeto GDI do Windows anexado ao objeto CGdiObject.
CGdiObject::GetObjectType Recupera o tipo do objeto GDI.
CGdiObject::GetSafeHandle Retorna m_hObject, a menos que this seja NULL; nesse caso, NULL é retornado.
CGdiObject::UnrealizeObject Redefine a origem de um pincel ou redefine uma paleta lógica.

Operadores públicos

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

Membros de Dados Públicos

Nome Descrição
CGdiObject::m_hObject Um HANDLE que contém o HBITMAP, HPALETTE, HRGN, HBRUSH, HPEN ou HFONT anexado a esse objeto.

Comentários

Nunca crie um CGdiObject diretamente. Em vez disso, você cria um objeto de uma de suas classes derivadas, como CPen ou CBrush.

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

Hierarquia de herança

CObject

CGdiObject

Requisitos

Cabeçalho: afxwin.h

CGdiObject::Attach

Anexa um objeto GDI do Windows a um objeto CGdiObject.

BOOL Attach(HGDIOBJ hObject);

Parâmetros

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

Valor de retorno

Diferente de zero se o anexo tiver sido bem-sucedido; caso contrário, 0.

CGdiObject::CGdiObject

Constrói um objeto CGdiObject.

CGdiObject();

Comentários

Nunca crie um CGdiObject diretamente. Em vez disso, você cria um objeto de uma de suas classes derivadas, como CPen ou Cbrush.

CGdiObject::CreateStockObject

Recupera um identificador para uma das canetas, pincéis ou fontes do Windows GDI predefinidos e anexa o objeto GDI ao objeto CGdiObject.

BOOL CreateStockObject(int nIndex);

Parâmetros

nIndex
Uma constante que especifica o tipo de objeto padrão desejado. Confira 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.

Comentários

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

CGdiObject::DeleteObject

Exclui o objeto Windows GDI anexado da memória liberando todo o armazenamento do sistema associado ao objeto GDI do Windows.

BOOL DeleteObject();

Valor de retorno

Não zero se o objeto GDI foi excluído com êxito; caso contrário, 0.

Comentários

O armazenamento associado ao objeto CGdiObject não é afetado por essa chamada. Um aplicativo não deve chamar DeleteObject em um objeto CGdiObject selecionado em um contexto de dispositivo.

Quando um pincel de padrão é excluído, o bitmap associado ao pincel não é excluído. O bitmap deve ser excluído independentemente.

CGdiObject::DeleteTempMap

Chamado automaticamente pelo manipulador de tempo ocioso CWinApp, DeleteTempMap exclui todos os objetos temporários CGdiObject criados por FromHandle.

static void PASCAL DeleteTempMap();

Comentários

DeleteTempMap desanexa o objeto GDI do Windows anexado a um objeto temporário CGdiObject antes de excluir o objeto CGdiObject.

Exemplo

// DeleteTempMap() is a static member and so does not need to
// be called within the scope of an instantiated CGdiObject object.
CGdiObject::DeleteTempMap();

CGdiObject::Detach

Desanexa um objeto GDI do Windows de um objeto CGdiObject e retorna um identificador para o objeto GDI do Windows.

HGDIOBJ Detach();

Valor de retorno

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

CGdiObject::FromHandle

Retorna um ponteiro para um objeto CGdiObject dado um identificador para um objeto GDI do Windows.

static CGdiObject* PASCAL FromHandle(HGDIOBJ hObject);

Parâmetros

hObject
Um HANDLE para um objeto GDI do Windows.

Valor de retorno

Um ponteiro para um CGdiObject que pode ser temporário ou permanente.

Comentários

Se um objeto CGdiObject ainda não estiver anexado ao objeto GDI do Windows, um objeto CGdiObject temporário será criado e anexado.

Esse objeto CGdiObject temporário só será válido até a próxima vez que o aplicativo tiver tempo ocioso em seu loop de eventos, quando todos os objetos gráficos temporários serão excluídos. Outra maneira de dizer isso é que o objeto temporário é válido somente durante o processamento de uma mensagem de janela.

CGdiObject::GetObject

Preenche um buffer com os dados que definem um objeto especificado.

int GetObject(
    int nCount,
    LPVOID lpObject) const;

Parâmetros

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

lpObject
Aponta para um buffer fornecido pelo usuário que deve receber as informações.

Valor de retorno

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

Comentários

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

Objeto Tipo de buffer
CPen LOGPEN
CBrush LOGBRUSH
CFont LOGFONT
CBitmap BITMAP
CPalette WORD
CRgn Sem suporte

Se o objeto for CBitmap, GetObject retornará apenas as informações de formato de largura, altura e cor do bitmap. Os bits reais podem ser recuperados usando CBitmap::GetBitmapBits.

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

CGdiObject::GetObjectType

Recupera o tipo do objeto GDI.

UINT GetObjectType() const;

Valor de retorno

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

  • OBJ_BITMAP Bitmap

  • OBJ_BRUSH Pincel

  • OBJ_FONT Fonte

  • OBJ_PAL Paleta

  • OBJ_PEN Caneta

  • OBJ_EXTPEN Caneta estendida

  • OBJ_REGION Região

  • OBJ_DC Contexto do dispositivo

  • OBJ_MEMDC Contexto do dispositivo de memória

  • OBJ_METAFILE Meta-arquivo

  • OBJ_METADC Contexto do dispositivo de meta-arquivo

  • OBJ_ENHMETAFILE Meta-arquivo avançado

  • OBJ_ENHMETADC Contexto do dispositivo de meta-arquivo avançado

CGdiObject::GetSafeHandle

Retorna m_hObject, a menos que this seja NULL; nesse caso, NULL é retornado.

HGDIOBJ GetSafeHandle() const;

Valor de retorno

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

Comentários

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

Exemplo

Confira o exemplo de CWnd::IsWindowEnabled.

CGdiObject::m_hObject

Um HANDLE que contém o HBITMAP, HRGN, HBRUSH, HPEN, HPALETTE ou HFONT anexado a este objeto.

HGDIOBJ m_hObject;

CGdiObject::operator !=

Determina se dois objetos GDI não são logicamente iguais.

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

Parâmetros

obj
Um ponteiro para um CGdiObject.

Comentários

Determina se um objeto GDI à esquerda é diferente do objeto GDI à direita.

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 existente.

Comentários

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

CGdiObject::operator HGDIOBJ

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

operator HGDIOBJ() const;

CGdiObject::UnrealizeObject

Redefine a origem de um pincel ou redefine uma paleta lógica.

BOOL UnrealizeObject();

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

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

Para objetos CBrush, UnrealizeObject direcionará o sistema para redefinir a origem do pincel fornecido na próxima vez que ele for selecionado em um contexto de dispositivo. Se o objeto for CPalette, UnrealizeObject direcionará o sistema a realizar a paleta como se não tivesse sido realizada anteriormente. Na próxima vez que o aplicativo chamar a função CDC::RealizePalette para a paleta especificada, o sistema remapeará completamente a paleta lógica para a paleta do sistema.

A função UnrealizeObject não deve ser usada com objetos padrão. A função UnrealizeObject deve ser chamada sempre que uma nova origem do pincel for definida (por meio da função CDC::SetBrushOrg). A função UnrealizeObject não deve ser chamada para a paleta ou o pincel selecionado no momento de qualquer contexto de exibição.

Confira também

Gráfico da hierarquia
Classe CBitmap
Classe CBrush
Classe CFont
Classe CPalette
Classe CPen
Classe CRgn