Partilhar via


Classe CPalette

Encapsula uma paleta de cores do Windows.

Sintaxe

class CPalette : public CGdiObject

Membros

Construtores públicos

Nome Descrição
CPalette::CPalette Constrói um objeto CPalette sem nenhuma paleta do Windows anexada. Você deve inicializar o objeto CPalette com uma das funções membro de inicialização antes que ele possa ser usado.

Métodos públicos

Nome Descrição
CPalette::AnimatePalette Substitui as entradas na paleta lógica identificada pelo objeto CPalette. O aplicativo não precisa atualizar sua área de cliente, pois o Windows mapeia as novas entradas para a paleta do sistema imediatamente.
CPalette::CreateHalftonePalette Cria uma paleta de meio-tom para o contexto do dispositivo e a anexa ao objeto CPalette.
CPalette::CreatePalette Cria uma paleta de cores do Windows e a anexa ao objeto CPalette.
CPalette::FromHandle Retorna um ponteiro para um objeto CPalette quando dado um identificador para um objeto de paleta do Windows.
CPalette::GetEntryCount Recupera o número de entradas de paleta em uma paleta lógica.
CPalette::GetNearestPaletteIndex Retorna o índice da entrada na paleta lógica que mais se aproxima de um valor de cor.
CPalette::GetPaletteEntries Recupera um intervalo de entradas de paleta em uma paleta lógica.
CPalette::ResizePalette Altera o tamanho da paleta lógica especificada pelo objeto CPalette para o número especificado de entradas.
CPalette::SetPaletteEntries Define valores de cor RGB e sinalizadores em um intervalo de entradas em uma paleta lógica.

Operadores públicos

Nome Descrição
CPalette::operator HPALETTE Retorna o HPALETTE anexado ao CPalette.

Comentários

Uma paleta fornece uma interface entre um aplicativo e um dispositivo de saída de cores (como um dispositivo de exibição). A interface permite que o aplicativo aproveite ao máximo as funcionalidades de cor do dispositivo de saída sem interferir drasticamente nas cores exibidas por outros aplicativos. O Windows usa a paleta lógica do aplicativo (uma lista de cores necessárias) e a paleta do sistema (que define as cores disponíveis) para determinar as cores usadas.

Um objeto CPalette fornece funções membro para manipular a paleta referenciada pelo objeto. Construa um objeto CPalette e use suas funções membro para criar a paleta real, um objeto GDI (Graphics Device Interface) e manipular suas entradas e outras propriedades.

Para obter mais informações sobre como usar CPalette, consulte Objetos Gráficos.

Hierarquia de herança

CObject

CGdiObject

CPalette

Requisitos

Cabeçalho: afxwin.h

CPalette::AnimatePalette

Substitui as entradas na paleta lógica anexada ao objeto CPalette.

void AnimatePalette(
    UINT nStartIndex,
    UINT nNumEntries,
    LPPALETTEENTRY lpPaletteColors);

Parâmetros

nStartIndex
Especifica a primeira entrada na paleta a ser animada.

nNumEntries
Especifica o número de entradas na paleta a serem animadas.

lpPaletteColors
Aponta para o primeiro membro de uma matriz de estruturas PALETTEENTRY para substituir as entradas de paleta identificadas por nStartIndex e nNumEntries.

Comentários

Quando um aplicativo chama AnimatePalette, ele não precisa atualizar sua área de cliente, pois o Windows mapeia as novas entradas para a paleta do sistema imediatamente.

A função AnimatePalette só alterará as entradas com o sinalizador PC_RESERVED definido no membro palPaletteEntry correspondente da estrutura LOGPALETTE anexada ao objeto CPalette. Para obter mais informações sobre essa estrutura, consulte LOGPALETTE no SDK do Windows.

CPalette::CPalette

Constrói um objeto CPalette.

CPalette();

Comentários

O objeto não tem nenhuma paleta anexada até que você chame CreatePalette para anexar uma.

CPalette::CreateHalftonePalette

Cria uma paleta de meio-tom para o contexto do dispositivo.

BOOL CreateHalftonePalette(CDC* pDC);

Parâmetros

pDC
Identifica o contexto do dispositivo.

Valor de Devolução

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

Comentários

Um aplicativo deve criar uma paleta de meio-tom quando o modo de alongamento de um contexto de dispositivo é definido como HALFTONE. A paleta lógica de meio-tom retornada pela função membro CreateHalftonePalette deve ser selecionada e realizada no contexto do dispositivo antes que a função CDC::StretchBlt ou StretchDIBits seja chamada.

Consulte o SDK do Windows para obter mais informações sobre CreateHalftonePalette e StretchDIBits.

CPalette::CreatePalette

Inicializa um objeto CPalette criando uma paleta lógica de cores do Windows e anexando-a ao objeto CPalette.

BOOL CreatePalette(LPLOGPALETTE lpLogPalette);

Parâmetros

lpLogPalette
Aponta para uma estrutura LOGPALETTE que contém informações sobre as cores na paleta lógica.

Valor de Devolução

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

Comentários

Para obter mais informações sobre a estrutura LOGPALETTE, consulte no SDK do Windows.

CPalette::FromHandle

Retorna um ponteiro para um objeto CPalette quando dado um identificador para um objeto de paleta do Windows.

static CPalette* PASCAL FromHandle(HPALETTE hPalette);

Parâmetros

hPalette
Um identificador para uma paleta de cores GDI do Windows.

Valor de Devolução

Um ponteiro para um objeto CPalette se tiver êxito; caso contrário, NULL.

Comentários

Se um objeto CPalette não estiver anexado à paleta do Windows, um objeto CPalette temporário será criado e anexado. Esse objeto temporário CPalette é válido somente até a próxima vez que o aplicativo tiver tempo ocioso em seu loop de eventos, momento em que todos os objetos gráficos temporários são excluídos. Em outras palavras, o objeto temporário é válido somente durante o processamento de uma mensagem de janela.

CPalette::GetEntryCount

Chame essa função membro para recuperar o número de entradas em uma determinada paleta lógica.

int GetEntryCount();

Valor de Devolução

Número de entradas em uma paleta lógica.

CPalette::GetNearestPaletteIndex

Retorna o índice da entrada na paleta lógica que mais se aproxima do valor da cor especificada.

UINT GetNearestPaletteIndex(COLORREF crColor) const;

Parâmetros

crColor
Especifica a cor a ser correspondida.

Valor de Devolução

O índice de uma entrada em uma paleta lógica. A entrada contém a cor que quase se aproxima à cor especificada.

CPalette::GetPaletteEntries

Recupera um intervalo de entradas de paleta em uma paleta lógica.

UINT GetPaletteEntries(
    UINT nStartIndex,
    UINT nNumEntries,
    LPPALETTEENTRY lpPaletteColors) const;

Parâmetros

nStartIndex
Especifica a primeira entrada na paleta lógica a ser recuperada.

nNumEntries
Especifica o número de entradas na paleta lógica a ser recuperada.

lpPaletteColors
Aponta para uma matriz de estruturas de dados PALETTEENTRY para receber as entradas de paleta. A matriz deve conter pelo menos a quantidade de estruturas de dados que forem especificadas por nNumEntries.

Valor de Devolução

O número de entradas recuperadas da paleta lógica; 0 se a função falhou.

CPalette::operator HPALETTE

Use esse operador para obter o identificador GDI do Windows anexado do objeto CPalette.

operator HPALETTE() const;

Valor de Devolução

Se tiver êxito, um identificador para o objeto GDI do Windows representado pelo objeto CPalette; caso contrário, NULL.

Comentários

Esse operador é um operador de conversão, que dá suporte ao uso direto de um objeto HPALETTE.

Para obter mais informações sobre como usar objetos gráficos, confira o artigo Objetos Gráficos no SDK do Windows.

CPalette::ResizePalette

Altera o tamanho da paleta lógica anexada ao objeto CPalette para o número de entradas especificadas por nNumEntries.

BOOL ResizePalette(UINT nNumEntries);

Parâmetros

nNumEntries
Especifica o número de entradas na paleta depois que ela é redimensionada.

Valor de Devolução

Diferente de zero se a paleta foi redimensionada com êxito; caso contrário, 0.

Comentários

Se um aplicativo chamar ResizePalette para reduzir o tamanho da paleta, as entradas restantes na paleta redimensionada ficarão inalteradas. Se o aplicativo chamar ResizePalette para ampliar a paleta, as entradas de paleta adicionais serão definidas como pretas (os valores vermelho, verde e azul são todos 0) e os sinalizadores para todas as entradas adicionais serão definidos como 0.

Para obter mais informações sobre a API ResizePalette do Windows, consulte ResizePalette no SDK do Windows.

CPalette::SetPaletteEntries

Define valores de cor RGB e sinalizadores em um intervalo de entradas em uma paleta lógica.

UINT SetPaletteEntries(
    UINT nStartIndex,
    UINT nNumEntries,
    LPPALETTEENTRY lpPaletteColors);

Parâmetros

nStartIndex
Especifica a primeira entrada na paleta lógica a ser definida.

nNumEntries
Especifica o número de entradas na paleta lógica a ser definida.

lpPaletteColors
Aponta para uma matriz de estruturas de dados PALETTEENTRY para receber as entradas de paleta. A matriz deve conter pelo menos a quantidade de estruturas de dados que forem especificadas por nNumEntries.

Valor de Devolução

O número de entradas definidas na paleta lógica; 0 se a função falhou.

Comentários

Se a paleta lógica for selecionada em um contexto de dispositivo quando o aplicativo chamar SetPaletteEntries, as alterações não entrarão em vigor até que o aplicativo chame CDC::RealizePalette.

Para mais informações, confira PALETTEENTRY no SDK do Windows.

Confira também

DIBLOOK de exemplo do MFC
Classe CGdiObject
Gráfico da hierarquia
CPalette::GetPaletteEntries
CPalette::SetPaletteEntries