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

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

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

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

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

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

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

Назад в оглавление
На главную страницу

Hosted by uCoz