Класс 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
см. в разделе "Графические объекты".
Иерархия наследования
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 .
Дополнительные сведения см CreateHalftonePalette
StretchDIBits
. в пакете 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 ResizePalette
Windows см. в статье 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