The CreatePalette function creates a logical palette.
HPALETTE CreatePalette(
__in const LOGPALETTE *lplgpl
);
Parameters
lplgpl [in]
A pointer to a LOGPALETTE structure that contains information about the colors in the logical palette.
Return Value
If the function succeeds, the return value is a handle to a logical palette.
If the function fails, the return value is NULL.
Remarks
An application can determine whether a device supports palette operations by calling the GetDeviceCaps function and specifying the RASTERCAPS constant.
Once an application creates a logical palette, it can select that palette into a device context by calling the SelectPalette function. A palette selected into a device context can be realized by calling the RealizePalette function.
When you no longer need the palette, call the DeleteObject function to delete it.
LOGPALETTE 结构体
The LOGPALETTE structure defines a logical palette.
typedef struct tagLOGPALETTE {
WORD palVersion;
WORD palNumEntries;
PALETTEENTRY palPalEntry[1];
} LOGPALETTE;
Members
palVersion
The version number of the system.
palNumEntries
The number of entries in the logical palette.
palPalEntry
Specifies an array of PALETTEENTRY structures that define the color and usage of each entry in the logical palette.
Remarks
The colors in the palette-entry table should appear in order of importance because entries earlier in the logical palette are most likely to be placed in the system palette.
PALETTEENTRY 结构体
The PALETTEENTRY structure specifies the color and usage of an entry in a logical palette. A logical palette is defined by a LOGPALETTE structure.
typedef struct tagPALETTEENTRY {
BYTE peRed;
BYTE peGreen;
BYTE peBlue;
BYTE peFlags;
} PALETTEENTRY;
Members
peRed
The red intensity value for the palette entry.
peGreen
The green intensity value for the palette entry.
peBlue
The blue intensity value for the palette entry.
peFlags
Indicates how the palette entry is to be used. This member may be set to 0 or one of the following values.
Value | Meaning |
---|---|
PC_EXPLICIT | Specifies that the low-order word of the logical palette entry designates a hardware palette index. This flag allows the application to show the contents of the display device palette. |
PC_NOCOLLAPSE | Specifies that the color be placed in an unused entry in the system palette instead of being matched to an existing color in the system palette. If there are no unused entries in the system palette, the color is matched normally. Once this color is in the system palette, colors in other logical palettes can be matched to this color. |
PC_RESERVED | Specifies that the logical palette entry be used for palette animation. This flag prevents other windows from matching colors to the palette entry since the color frequently changes. If an unused system-palette entry is available, the color is placed in that entry. Otherwise, the color is not available for animation. |