Класс CPalette

Инкапсулирует цветовую палитру Windows.

Синтаксис

class CPalette : public CGdiObject

Участники

Открытые конструкторы

Имя Описание
CPalette::CPalette CPalette Создает объект без подключенной палитры Windows. Прежде чем его можно будет использовать, необходимо инициализировать CPalette объект с помощью одной из функций-членов инициализации.

Открытые методы

Имя Описание
CPalette::AnimatePalette Заменяет записи в логической палитре, определяемой CPalette объектом. Приложению не нужно обновлять клиентская область, так как Windows сопоставляет новые записи в системную палитру немедленно.
CPalette::CreateHalftonePalette Создает полутонную палитру для контекста устройства и присоединяет его к объекту CPalette .
CPalette::CreatePalette Создает цветовую палитру Windows и присоединяет ее к объекту CPalette .
CPalette::FromHandle Возвращает указатель на CPalette объект при указании дескриптора в объект палитры Windows.
CPalette::GetEntryCount Извлекает количество записей палитры в логической палитре.
CPalette::GetNearestPaletteIndex Возвращает индекс записи в логической палитре, которая наиболее тесно соответствует значению цвета.
CPalette::GetPaletteEntries Извлекает диапазон записей палитры в логической палитре.
CPalette::ResizePalette Изменяет размер логической палитры, указанной CPalette объектом, на указанное число записей.
CPalette::SetPaletteEntries Задает значения цветов RGB и флаги в диапазоне записей в логической палитре.

Открытые операторы

Имя Описание
CPalette::operator HPALETTE Возвращает HPALETTE, подключенный к элементу CPalette.

Замечания

Палитра предоставляет интерфейс между приложением и цветным выходным устройством (например, устройством отображения). Интерфейс позволяет приложению использовать все возможности цвета выходного устройства без серьезного вмешательства в цвета, отображаемые другими приложениями. Windows использует логическую палитру приложения (список необходимых цветов) и системную палитру (которая определяет доступные цвета) для определения используемых цветов.

Объект CPalette предоставляет функции-члены для управления палитрой, на которую ссылается объект. CPalette Создайте объект и используйте его функции-члены для создания фактической палитры, объекта интерфейса графического устройства (GDI) и управления записями и другими свойствами.

Дополнительные сведения об использовании CPaletteсм. в разделе "Графические объекты".

Иерархия наследования

CObject

CGdiObject

CPalette

Требования

Заголовок: afxwin.h

CPalette::AnimatePalette

Заменяет записи в логической палитре, присоединенной к объекту CPalette .

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

Параметры

nStartIndex
Указывает первую запись в палитре, анимированную.

nNumEntries
Указывает количество записей в палитре, которые нужно анимировать.

lpPaletteColors
Указывает на первый элемент массива структур PALETTEENTRY, чтобы заменить записи палитры, определенные nStartIndex и nNumEntries.

Замечания

При вызове AnimatePaletteприложения не нужно обновлять клиентская область, так как Windows сопоставляет новые записи в системную палитру немедленно.

Функция AnimatePalette изменит только записи с флагом PC_RESERVED, установленным в соответствующем palPaletteEntry элементе структуры LOGPALETTE , присоединенной к объекту CPalette . Дополнительные сведения об этой структуре см. в LOGPALETTE в пакете SDK для Windows.

CPalette::CPalette

Формирует объект CPalette.

CPalette();

Замечания

Объект не имеет подключенной палитры, пока не вызовете CreatePalette его.

CPalette::CreateHalftonePalette

Создает полутонную палитру для контекста устройства.

BOOL CreateHalftonePalette(CDC* pDC);

Параметры

pDC
Определяет контекст устройства.

Возвращаемое значение

Ненулевое значение, если функция выполнена успешно; в противном случае — 0.

Замечания

Приложение должно создать полутонную палитру, если для контекста устройства задан режим растяжения. Логическая палитра половины, возвращаемая функцией члена CreateHalftonePalette , должна быть выбрана и реализована в контексте устройства перед вызовом функции CDC::StretchBlt или StretchDIBits .

Дополнительные сведения см CreateHalftonePaletteStretchDIBits. в пакете SDK для Windows.

CPalette::CreatePalette

Инициализирует CPalette объект, создавая логическую цветовую палитру Windows и присоединяя его к объекту CPalette .

BOOL CreatePalette(LPLOGPALETTE lpLogPalette);

Параметры

lpLogPalette
Указывает на структуру LOGPALETTE , содержащую сведения о цветах в логической палитре.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Дополнительные сведения о LOGPALETTE структуре см. в пакете SDK для Windows.

CPalette::FromHandle

Возвращает указатель на CPalette объект при указании дескриптора в объект палитры Windows.

static CPalette* PASCAL FromHandle(HPALETTE hPalette);

Параметры

hPalette
Дескриптор цветовой палитры Windows GDI.

Возвращаемое значение

Указатель на объект в случае успешного CPalette выполнения; в противном случае — ЗНАЧЕНИЕ NULL.

Замечания

CPalette Если объект еще не присоединен к палитре Windows, создается и присоединяется временный CPalette объект. Этот временный объект действителен только в следующий раз, когда приложение имеет время простоя CPalette в цикле событий, в то время как все временные графические объекты удаляются. Другими словами, временный объект действителен только во время обработки одного сообщения окна.

CPalette::GetEntryCount

Вызовите эту функцию-член, чтобы получить количество записей в заданной логической палитре.

int GetEntryCount();

Возвращаемое значение

Количество записей в логической палитре.

CPalette::GetNearestPaletteIndex

Возвращает индекс записи в логической палитре, которая наиболее тесно соответствует указанному значению цвета.

UINT GetNearestPaletteIndex(COLORREF crColor) const;

Параметры

crColor
Указывает соответствующий цвет.

Возвращаемое значение

Индекс записи в логической палитре. Запись содержит цвет, который почти соответствует указанному цвету.

CPalette::GetPaletteEntries

Извлекает диапазон записей палитры в логической палитре.

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

Параметры

nStartIndex
Указывает первую запись в логической палитре, извлекаемой.

nNumEntries
Указывает количество записей в логической палитре, которые необходимо извлечь.

lpPaletteColors
Указывает на массив структур данных PALETTEENTRY для получения записей палитры. Массив должен содержать по крайней мере столько структур данных, сколько указано nNumEntries.

Возвращаемое значение

Количество записей, полученных из логической палитры; Значение 0, если функция завершилась ошибкой.

CPalette::operator HPALETTE

Используйте этот оператор для получения присоединенного дескриптора CPalette GDI Windows объекта.

operator HPALETTE() const;

Возвращаемое значение

В случае успешного выполнения дескриптор объекта GDI Windows, представленного CPalette объектом; в противном случае — ЗНАЧЕНИЕ NULL.

Замечания

Этот оператор является оператором приведения, который поддерживает прямое использование объекта HPALETTE.

Дополнительные сведения об использовании графических объектов см. в статье "Графические объекты " в пакете SDK для Windows.

CPalette::ResizePalette

Изменяет размер логической палитры, присоединенной к CPalette объекту, на число записей, указанных nNumEntries.

BOOL ResizePalette(UINT nNumEntries);

Параметры

nNumEntries
Указывает количество записей в палитре после изменения размера.

Возвращаемое значение

Ненулевое значение, если палитра была успешно изменена; в противном случае — 0.

Замечания

Если приложение вызывает ResizePalette уменьшение размера палитры, записи, оставшиеся в измененной палитре, не изменяются. Если приложение вызывает ResizePalette увеличение палитры, для дополнительных записей палитры задано черное (красные, зеленые и голубые значения равны 0), а флаги для всех дополнительных записей имеют значение 0.

Дополнительные сведения об API ResizePaletteWindows см. в статье ResizePalette в пакете SDK для Windows.

CPalette::SetPaletteEntries

Задает значения цветов RGB и флаги в диапазоне записей в логической палитре.

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

Параметры

nStartIndex
Указывает первую запись в логической палитре для задания.

nNumEntries
Указывает количество записей в логической палитре, которые необходимо задать.

lpPaletteColors
Указывает на массив структур данных PALETTEENTRY для получения записей палитры. Массив должен содержать по крайней мере столько структур данных, сколько указано nNumEntries.

Возвращаемое значение

Количество записей, заданных в логической палитре; Значение 0, если функция завершилась ошибкой.

Замечания

Если логическая палитра выбрана в контексте устройства при вызове SetPaletteEntriesприложения, изменения не вступают в силу до тех пор, пока приложение не вызовет CDC::RealizePalette.

Дополнительные сведения см. в статье PALETTEENTRY в пакете SDK для Windows.

См. также

Пример DIBLOOK MFC
Класс CGdiObject
Диаграмма иерархии
CPalette::GetPaletteEntries
CPalette::SetPaletteEntries