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