Partilhar via


Classe CPalette

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 uma paleta de cores do Windows.

Sintaxe

class CPalette : public CGdiObject

Membros

Construtores Públicos

Nome Description
CPalette::CPalette Constrói um CPalette objeto sem paleta Windows associada. Deve inicializar o CPalette objeto com uma das funções membros de inicialização antes de poder ser usado.

Métodos Públicos

Nome Description
CPalette::AnimatePalette Substitui as entradas na paleta lógica identificada pelo CPalette objeto. A aplicação não precisa de atualizar a sua área de cliente, porque o Windows mapeia imediatamente as novas entradas para a paleta do sistema.
CPalette::CriarHalftonePalette Cria uma paleta de meio-tons para o contexto do dispositivo e anexa-a ao CPalette objeto.
CPalette::CreatePalette Cria uma paleta de cores do Windows e anexa-a ao CPalette objeto.
CPalette::FromHandle Devolve um ponteiro para um CPalette objeto quando lhe é atribuído um handle a um objeto da paleta do Windows.
CPalette::GetEntryCount Recupera o número de entradas de paleta numa paleta lógica.
CPalette::GetNearestPaletteIndex Devolve o índice da entrada na paleta lógica que mais se aproxima de um valor de cor.
CPalette::GetPaletteEntries Recupera um conjunto de entradas de paleta numa paleta lógica.
CPalette::RedimensionPalette Altera o tamanho da paleta lógica especificada pelo CPalette objeto para o número especificado de entradas.
CPalette::SetPaletteEntries Define valores de cor RGB e flags numa variedade de entradas numa paleta lógica.

Operadores Públicos

Nome Description
CPalette::operator HPALETTE Devolve o HPALETTE ligado ao CPalette.

Observações

Uma paleta fornece uma interface entre uma aplicação e um dispositivo de saída de cor (como um dispositivo de visualização). A interface permite à aplicação tirar pleno proveito das capacidades de cor do dispositivo de saída sem interferir severamente com as cores exibidas por outras aplicações. O Windows utiliza a paleta lógica da aplicação (uma lista de cores necessárias) e a paleta do sistema (que define as cores disponíveis) para determinar as cores utilizadas.

Um CPalette objeto fornece funções de membro para manipular a paleta referida pelo objeto. Construir um CPalette objeto e usar as suas funções membros para criar a paleta real, um objeto de interface de dispositivo gráfico (GDI) e para manipular as suas entradas e outras propriedades.

Para mais informações sobre a utilização CPalettede , veja Objetos Gráficos.

Hierarquia de herança

CObject

CGdiObject

CPalette

Requerimentos

Cabeçalho: afxwin.h

CPalette::AnimatePalette

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

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

Parâmetros

nStartIndex
Especifica a primeira entrada da paleta a ser animada.

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

lpPaletteCores
Aponta para o primeiro membro de um array de estruturas PALETTEENTRY para substituir as entradas da paleta identificadas por nStartIndex e nNumEntrries.

Observações

Quando uma aplicação chama AnimatePalette, não precisa de atualizar a sua área do cliente, porque o Windows mapeia imediatamente as novas entradas para a paleta do sistema.

A AnimatePalette função só altera as entradas com a PC_RESERVED flag definida no membro correspondente palPaletteEntry da estrutura LOGPALETTE que está associada ao CPalette objeto. Consulte LOGPALETTE no SDK do Windows para mais informações sobre esta estrutura.

CPalette::CPalette

Constrói um CPalette objeto.

CPalette();

Observações

O objeto não tem paleta anexada até que chames CreatePalette para anexar uma.

CPalette::CriarHalftonePalette

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

BOOL CreateHalftonePalette(CDC* pDC);

Parâmetros

pDC
Identifica o contexto do dispositivo.

Valor de retorno

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

Observações

Uma aplicação deve criar uma paleta de semitons quando o modo de alongamento do contexto de um dispositivo está definido para MEIO-tom. A paleta lógica de semitons devolvida pela função membro CreateHalftonePalette deve então ser selecionada e realizada no contexto do dispositivo antes de a função CDC::StretchBlt ou StretchDIBits ser chamada.

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

CPalette::CreatePalette

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

BOOL CreatePalette(LPLOGPALETTE lpLogPalette);

Parâmetros

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

Valor de retorno

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

Observações

Consulte o SDK do Windows para mais informações sobre a LOGPALETTE estrutura.

CPalette::FromHandle

Devolve um ponteiro para um CPalette objeto quando lhe é atribuído um handle a um objeto da paleta do Windows.

static CPalette* PASCAL FromHandle(HPALETTE hPalette);

Parâmetros

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

Valor de retorno

Um apontador para um CPalette objeto se for bem-sucedido; caso contrário, NULL.

Observações

Se um CPalette objeto ainda não estiver associado à paleta Windows, um objeto temporário CPalette é criado e anexado. Este objeto temporário CPalette é 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. Por outras palavras, o objeto temporário é válido apenas durante o processamento de uma mensagem de janela.

CPalette::GetEntryCount

Chame esta função membro para recuperar o número de entradas numa dada paleta lógica.

int GetEntryCount();

Valor de retorno

Número de entradas numa paleta lógica.

CPalette::GetNearestPaletteIndex

Devolve o índice da entrada na paleta lógica que mais se aproxima do valor de cor especificado.

UINT GetNearestPaletteIndex(COLORREF crColor) const;

Parâmetros

crColor
Especifica a cor a ser correspondida.

Valor de retorno

O índice de uma entrada numa paleta lógica. A entrada contém a cor que mais se aproxima da cor especificada.

CPalette::GetPaletteEntries

Recupera um conjunto de entradas de paleta numa 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.

nNumEntradas
Especifica o número de entradas na paleta lógica a serem recuperadas.

lpPaletteCores
Aponta para um array de estruturas de dados PALETTEENTRY para receber as entradas da paleta. O array deve conter pelo menos tantas estruturas de dados especificadas por nNumEntrries.

Valor de retorno

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

CPalette::operator HPALETTE

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

operator HPALETTE() const;

Valor de retorno

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

Observações

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

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

CPalette::RedimensionPalette

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

BOOL ResizePalette(UINT nNumEntries);

Parâmetros

nNumEntradas
Especifica o número de entradas na paleta após esta ter sido redimensionada.

Valor de retorno

Diferente de zero se a paleta for redimensionada com sucesso; caso contrário, 0.

Observações

Se uma aplicação pedir ResizePalette para reduzir o tamanho da paleta, as entradas restantes na paleta redimensionada mantêm-se inalteradas. Se a aplicação chamar ResizePalette para ampliar a paleta, as entradas adicionais da paleta são definidas para preto (os valores vermelho, verde e azul são todos 0), e as bandeiras para todas as entradas adicionais são definidas para 0.

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

CPalette::SetPaletteEntries

Define valores de cor RGB e flags numa variedade de entradas numa 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.

nNumEntradas
Especifica o número de entradas na paleta lógica a definir.

lpPaletteCores
Aponta para um array de estruturas de dados PALETTEENTRY para receber as entradas da paleta. O array deve conter pelo menos tantas estruturas de dados especificadas por nNumEntrries.

Valor de retorno

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

Observações

Se a paleta lógica for selecionada para o contexto de um dispositivo quando a aplicação chama SetPaletteEntries, as alterações não terão efeito até que a aplicação chame CDC::RealizePalette.

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

Consulte também

DIBLOOK de Exemplo MFC
Classe CGdiObject
Gráfico de Hierarquia
CPalette::GetPaletteEntries
CPalette::SetPaletteEntries