Поделиться через


Палитра по умолчанию

Палитра по умолчанию — это массив значений цветов, определяющих цвета, которые по умолчанию можно использовать с контекстом устройства. система связывает палитру по умолчанию с контекстом всякий раз, когда приложение создает контекст для устройства, поддерживающего цветовые палитры. Палитра по умолчанию гарантирует, что цвета будут доступны для использования приложением без каких-либо дальнейших действий.

Палитра по умолчанию обычно содержит 20 записей (цветов), но точное количество записей может отличаться в зависимости от устройства. Это число равно значению NUMCOLORS, возвращаемого функцией GetDeviceCaps . Приложение может получить значения цветов в палитре по умолчанию путем перечисления сплошных перьев. Это тот же метод, который используется для обнаружения цветов, доступных на устройствах, не использующихpalette. Цвета в палитре по умолчанию зависят от устройства. Например, на устройствах отображения часто используются 16 стандартных цветов дисплея VGA и 4 других цвета, определенных Windows. Устройства печати могут использовать другие цвета по умолчанию.

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

Чтобы избежать аппроксимации и смещения, приложения также могут указывать цвета пера, кисти и текста с помощью индексов цветовой палитры, а не значений цветов. Индекс цветовой палитры — это целочисленное значение, определяющее определенную запись палитры. Приложения могут использовать индексы цветовой палитры вместо значений цвета, но для создания индексов необходимо использовать макрос PALETTEINDEX .

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

Система не позволяет приложению изменять записи в палитре по умолчанию. Чтобы использовать цвета, отличные от цветов в палитре по умолчанию, приложение должно создать собственную логическую палитру и выбрать палитру в контексте устройства.