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