Палитры и согласование цветов, страница 8

Рисунок 16.4. Пример применения функции GetNearestColor

GetNearestPalettelndex                  Windows 98   • Windows 2000

Описание

Функция GetNearestPalettelndex позволяет определить индекс элемента логической палитры, который наиболее точно соответствует указанному коду цвета. В приложении можно определить, поддерживает ли устройство операции   с   палитрой,   вызвав   функцию    GetDeviceCaps со   значением RASTERCAPS.

Синтаксис

UINT GetNearestPaletteIndex( HPALETTE hPal, COLORREF crColor )

Параметры

hPal

HPALETTE. Дескриптор логической палитры.

crColor

COLORREF. Цвет, который должен быть согласован.

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

UINT. В случае успешного выполнения — индекс соответствующего входа в логической палитре; в ином случае — CLR_INVALID.

Включаемый файл

wingdi.h

См. также

GetNearestColor, GetDeviceCaps

Пример

В следующем примере показано, как использовать функцию GetNearestPalettelndex для замены цветов оттенками серого цвета. При запуске приложения создается палитра, состоящая из 16 оттенков серого цвета, и отображается в верхней части клиентской области, как показано на рис. 16.5. Когда пользователь выбирает пункт меню Test!, функция GetNearestPalettelndex находит оттенок серого цвета, который должен использоваться вместо красного. Затем отображается прямоугольник соответствующего цвета.

См.    \Jocal-eources\chapl6\16-09.txt

Рисунок 16.5. Пример применения функции GetNearestPalettelndex

GetPaletteEntries                        Windows 98   • Windows 2000

Описание

Функция GetPaletteEntries позволяет получить указанный ряд входов палитры из логической палитры. В приложении можно определить, поддерживает ли устройство операции с палитрой, вызвав функцию GetDeviceCaps со значением RASTERCAPS.

Синтаксис

UINT GetPaletteEntries( HPALETTE hPal, UINT uStartlndex, UINT uEntries, LPPALETTEENTRY Ippe )

Параметры hPal

HPALETTE. Дескриптор логической палитры.

uStartlndex

UINT. Первый элемент в логической палитре, который должен быть получен.

uEntries

UINT. Число элементов в логической палитре, которые должны быть пй лучены.

Ippe

LPPALETTEENTRY. Указатель на массив структур PALETTEENTRY, который принимает элементы палитры. Массив должен содержать число структур не меньше, чем указано параметром nEntries. Если этот параметр установлен равным NULL, функция возвращает общее число элементов в палитре. Определение структуры PALETTEENTRY приведено в описании функции CreatePalette.

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

UINT. Если функция была выполнена успешно и параметр Ippe отличен от NULL, возвращаемое значение — число элементов, полученных из логической палитры. Если параметр Ippe равен NULL, возвращаемое значение — число элементов в палитре. В случае возникновения ошибки, функция возвращает 0.

Включаемыйфайл

wingdi.h

См. также

GetSystemPaletteEntries, CreatePalette, GetDeviceCaps

Пример

В следующем примере показано, как использовать функцию GetPaletteEntries для создания новой палитры, которая имеет подмножество элементов, имеющихся в первоначальной палитре. Когда пользователь выбирает пункт меню Test!, из палитры выбираются пять элементов, начиная со 2, и используются для создания новой палитры.

См.    \local-sources\chapl6\16-10. txt

GetSystemPaletteEntries                Windows 98   * Windows 2000

Описание

Функция GetSystemPaletteEntries позволяет получить ряд элементов из системной палитры, связанной с контекстом устройства. В приложении можно определить, поддерживает ли устройство операции с палитрой, вызвав функцию GetDeviceCaps со значением RASTERCAPS.

Синтаксис

UINT GetSystemPaletteEntries( HDC hdc, UINT uStartlndex, UINT uEntries, LPPALETTEENTRY Ippe )

Параметры hdc

HDC. Контекст устройства.

uStartlndex

UINT. Первый элемент, который должен быть получен из системной палитры.

uEntries

UINT. Число элементов, которые должны быть получены из системной палитры.

Ippe

LPPALETTEENTRY. Указатель на массив структур PALETTEENTRY, который принимает элементы палитры. Массив должен содержать число структур не меньше, чем указано параметром uEntries. Если значение этого параметра установлено равным NULL, функция возвращает общее число элементов палитры. Определение структуры PALETTEENTRY приведено в