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