CPalette (clase)

Encapsula una paleta de colores de Windows.

Sintaxis

class CPalette : public CGdiObject

Miembros

Constructores públicos

Nombre Descripción
CPalette::CPalette Construye un objeto CPalette sin paleta de Windows adjunta. Debe inicializar el objeto CPalette con una de las funciones miembro de inicialización para poder usarla.

Métodos públicos

Nombre Descripción
CPalette::AnimatePalette Reemplaza las entradas de la paleta lógica identificada por el objeto CPalette. La aplicación no tiene que actualizar su área cliente, ya que Windows asigna inmediatamente las nuevas entradas a la paleta del sistema.
CPalette::CreateHalftonePalette Crea una paleta de medios tonos para el contexto del dispositivo y la adjunta al objeto CPalette.
CPalette::CreatePalette Crea una paleta de colores de Windows y la adjunta al objeto CPalette.
CPalette::FromHandle Devuelve un puntero que apunta a un objeto CPalette cuando se especifica el manipulador de control de un objeto de paleta de Windows.
CPalette::GetEntryCount Recupera el número de entradas de paleta en una paleta lógica.
CPalette::GetNearestPaletteIndex Devuelve el índice de la entrada de la paleta lógica que coincide más estrechamente con un valor de color.
CPalette::GetPaletteEntries Recupera el número de entradas de paleta en una paleta lógica.
CPalette::ResizePalette Cambia el tamaño de la paleta lógica especificada por el objeto CPalette al número especificado de entradas.
CPalette::SetPaletteEntries Establece los valores de color RGB y las marcas en un intervalo de entradas de una paleta lógica.

Operadores públicos

Nombre Descripción
CPalette::operator HPALETTE Devuelve el HPALETTE asociado a CPalette.

Comentarios

Una paleta proporciona una interfaz entre una aplicación y un dispositivo de salida de color (como un dispositivo de visualización). La interfaz permite a la aplicación aprovechar al máximo las funcionalidades de color del dispositivo de salida sin interferir gravemente con los colores mostrados por otras aplicaciones. Windows usa la paleta lógica de la aplicación (una lista de colores necesarios) y la paleta del sistema (que define los colores disponibles) para determinar los colores usados.

Un objeto CPalette proporciona funciones miembro para manipular la paleta a la que hace referencia el objeto. Construya un objeto CPalette y use sus funciones miembro para crear la paleta real, un objeto de interfaz de dispositivo gráfico (GDI) y para manipular sus entradas y otras propiedades.

Para obtener más información sobre el uso de la clase CPalette, consulte Objetos gráficos.

Jerarquía de herencia

CObject

CGdiObject

CPalette

Requisitos

Encabezado: afxwin.h

CPalette::AnimatePalette

Reemplaza las entradas de la paleta lógica adjunta al objeto CPalette.

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

Parámetros

nStartIndex
Especifica la primera entrada de la paleta que se va a animar.

nNumEntries
Especifica el número de entradas de la paleta que se va a animar.

lpPaletteColors
Apunta al primer miembro de una matriz de estructuras PALETTEENTRY para reemplazar las entradas de paleta identificadas por nStartIndex y nNumEntries.

Comentarios

Cuando una aplicación llama a AnimatePalette, no tiene que actualizar su área cliente, ya que Windows asigna inmediatamente las nuevas entradas a la paleta del sistema.

La función AnimatePalette solo cambiará las entradas con la marca PC_RESERVED establecida en el miembro palPaletteEntry correspondiente de la estructura LOGPALETTE adjunta al objeto CPalette. Consulte LOGPALETTE en Windows SDK para obtener más información sobre esta estructura.

CPalette::CPalette

Construye un objeto CPalette.

CPalette();

Comentarios

El objeto no tiene paleta adjunta hasta que se llama a CreatePalette para adjuntar una.

CPalette::CreateHalftonePalette

Crea una paleta de medios tonos para el contexto del dispositivo.

BOOL CreateHalftonePalette(CDC* pDC);

Parámetros

pDC
Identifica el contexto del dispositivo.

Valor devuelto

Es distinto de cero si la función se realiza correctamente; de lo contrario, es 0.

Comentarios

Una aplicación debe crear una paleta de medios tonos cuando el modo de ajuste de un contexto de dispositivo se establece en HALFTONE. La paleta de medios tonos lógica devuelta por la función miembro CreateHalftonePalette se debe seleccionar y realizar en el contexto del dispositivo antes de llamar a la función CDC::StretchBlt o StretchDIBits.

Consulte Windows SDK para obtener más información sobre CreateHalftonePalette y StretchDIBits.

CPalette::CreatePalette

Inicializa un objeto CPalette mediante la creación de una paleta de colores lógica de Windows y la adjunta al objeto CPalette.

BOOL CreatePalette(LPLOGPALETTE lpLogPalette);

Parámetros

lpLogPalette
Apunta a una estructura LOGPALETTE que contiene información sobre los colores de la paleta lógica.

Valor devuelto

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.

Comentarios

Consulte Windows SDK para obtener más información sobre la estructura LOGPALETTE.

CPalette::FromHandle

Devuelve un puntero que apunta a un objeto CPalette cuando se especifica el manipulador de control de un objeto de paleta de Windows.

static CPalette* PASCAL FromHandle(HPALETTE hPalette);

Parámetros

hPalette
Manipulador para una paleta de colores GDI de Windows.

Valor devuelto

Un puntero a un objeto CPalette si se realiza correctamente; de lo contrario, NULL.

Comentarios

Si todavía no se ha asociado un objeto CPalette con la paleta de Windows, se creará y asociará un objeto CPalette temporal. Este objeto CPalette temporal solo es válido hasta la próxima vez que la aplicación tenga tiempo de inactividad en su bucle de eventos, momento en el que se eliminan todos los objetos gráficos temporales. En otras palabras, el objeto temporal solo es válido durante el procesamiento de un mensaje de ventana.

CPalette::GetEntryCount

Llame a esta función miembro para recuperar el número de entradas de una paleta lógica determinada.

int GetEntryCount();

Valor devuelto

Número de entradas de una paleta lógica.

CPalette::GetNearestPaletteIndex

Devuelve el índice de la entrada de la paleta lógica que coincide más estrechamente con el valor de color especificado.

UINT GetNearestPaletteIndex(COLORREF crColor) const;

Parámetros

crColor
Especifica el color con el que se va a establecer la coincidencia.

Valor devuelto

Índice de una entrada en una paleta lógica. La entrada contiene el color que casi coincide con el color especificado.

CPalette::GetPaletteEntries

Recupera el número de entradas de paleta en una paleta lógica.

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

Parámetros

nStartIndex
Especifica la primera entrada de la paleta lógica que se va a recuperar.

nNumEntries
Especifica el número de entradas de la paleta lógica que se van a recuperar.

lpPaletteColors
Apunta a una matriz de estructuras de datos PALETTEENTRY para recibir las entradas de la paleta. Esta matriz debe contener al menos tantas estructuras de datos como las especificadas por nNumEntries.

Valor devuelto

Número de entradas recuperadas de la paleta lógica; 0 si se produjo un error en la función.

CPalette::operator HPALETTE

Use este operador para obtener el identificador GDI de Windows adjunto del CPalette objeto.

operator HPALETTE() const;

Valor devuelto

Si se ejecuta correctamente, un identificador de control del objeto GDI de Windows representado por el objeto CPalette; de lo contrario, NULL.

Comentarios

Este operador es un operador de conversión, que admite el uso directo de un objeto HPALETTE.

Para obtener más información sobre el uso de objetos gráficos, consulte el artículo Objetos gráficos en Windows SDK.

CPalette::ResizePalette

Cambia el tamaño de la paleta lógica adjunta al objeto CPalette al número de entradas especificadas por nNumEntries.

BOOL ResizePalette(UINT nNumEntries);

Parámetros

nNumEntries
Especifica el número de entradas de la paleta después de que se haya cambiado el tamaño.

Valor devuelto

Distinto de cero si el tamaño de la paleta se ha cambiado correctamente; de lo contrario, 0.

Comentarios

Si una aplicación llama a ResizePalette para reducir el tamaño de la paleta, las entradas restantes en la paleta redimensionada no se modifican. Si la aplicación llama a ResizePalette para ampliar la paleta, las entradas de paleta adicionales se establecen en negro (los valores rojo, verde y azul son 0) y las marcas de todas las entradas adicionales se establecen en 0.

Para obtener más información sobre la API de Windows ResizePalette, vea ResizePalette en Windows SDK.

CPalette::SetPaletteEntries

Establece los valores de color RGB y las marcas en un intervalo de entradas de una paleta lógica.

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

Parámetros

nStartIndex
Especifica la primera entrada de la paleta lógica que se va a establecer.

nNumEntries
Especifica el número de entradas de la paleta lógica que se va a establecer.

lpPaletteColors
Apunta a una matriz de estructuras de datos PALETTEENTRY para recibir las entradas de la paleta. Esta matriz debe contener al menos tantas estructuras de datos como las especificadas por nNumEntries.

Valor devuelto

Número de entradas establecido en la paleta lógica; 0 si se produjo un error en la función.

Comentarios

Si la paleta lógica se selecciona en un contexto de dispositivo cuando la aplicación llama a SetPaletteEntries, los cambios no surtirán efecto hasta que la aplicación llame a CDC::RealizePalette.

Para obtener más información, vea PALETTEENTRY en Windows SDK.

Consulte también

MFC Sample DIBLOOK
CGdiObject (clase)
Gráfico de jerarquías
CPalette::GetPaletteEntries
CPalette::SetPaletteEntries