На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Logical Palette



A logical palette is a color palette that an application creates and associates with a given device context. Logical palettes let applications define and use colors that meet their specific needs. Applications can create any number of logical palettes, using them for separate device contexts or switching between them for a single device context. The maximum number of palettes that an application can create depends on the resources of the system.

An application creates a logical palette by using the CreatePalette function. The application fills a LOGPALETTE structure, which specifies the number of entries and the color values for each entry, and then the application passes the structure to CreatePalette. The function returns a palette handle that the application uses in all subsequent operations to identify the palette. To use colors in the logical palette, the application selects the palette into a device context by using the SelectPalette function and then realizes the palette by using the RealizePalette function. The colors in the palette are available as soon as the logical palette is realized.

An application should limit the size of its logical palettes to just enough entries to represent the colors needed. Applications cannot create logical palettes larger than the maximum palette size, a device-dependent value. Applications can obtain the maximum size by using the GetDeviceCaps function to retrieve the SIZEPALETTE value.
Although an application can specify any color value for a given entry in a logical palette, not all colors can be generated by the given device. Windows does not provide a way to discover which colors are supported, but the application can discover the total number of these colors by retrieving the color resolution of the device. The color resolution, specified in color bits per pixel, is equal to the COLORRES value returned by the GetDeviceCaps function. A device that has a color resolution of 18 has 262,144 possible colors. If an application requests a color that is not supported, Windows chooses an appropriate approximation.

Once a logical palette is created, an application can change colors in the palette by using the SetPaletteEntries function. If the logical palette has been selected and realized, changing the palette does not immediately affect the colors being displayed. The application must use the UnrealizeObject and RealizePalette functions to update the colors. In some cases, the application may need to deselect, unrealize, select, and realize the logical palette to ensure that the colors are updated exactly as requested. If an application selects a logical palette into more than one device context, changes to the logical palette affect all device contexts for which it is selected.

An application can change the number of entries in a logical palette by using the ResizePalette function. If the application reduces the size, the remaining entries are unchanged. If the application extends the size, Windows sets the color for each new entry to black (0, 0, 0) and the flag to zero.
An application can retrieve the color and flag values for entries in a given logical palette by using the GetPaletteEntries function. An application can retrieve the index for the entry in a given logical palette that most closely matches a specified color value by using the GetNearestPaletteIndex function.

When an application no longer needs a logical palette, it can delete it by using the DeleteObject function. The application must make sure the logical palette is no longer selected into a device context before deleting the palette.


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Логическая Палитра



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

Приложение создает логическую палитру используя функцию CreatePalette. Приложение заполняет структуру LOGPALETTE, которая определяет номер данных и цвет оценивается для каждого входа, и затем приложение передает структуру на CreatePalette. Функция возвращает ручку палитры, что приложение используется во всех последующих действиях, чтобы идентифицировать палитру. Чтобы использовать цвета в логической палитре, приложение выбирается палитру в контекст устройства используя функцию SelectPalette затем реализовывает палитру используя функцию RealizePalette. Цвета в палитре доступны как только логическая палитра будет реализована.

Приложение должно ограничивать размер своих логических палитр, чтобы просто достаточно данных, чтобы представлять цвета, которым нужно. Приложения не могут создать логические палитры больше чем максимальный размер палитры, устройство-зависимая величина. Приложения могут получить максимальный размер используя функцию GetDeviceCaps, чтобы извлекать величину SIZEPALETTE.
Хотя приложение может определить любую цветную величину для данного входа в логической палитре, не все цвета могут быть сгенерированы данным устройством. Окно не обеспечивает путь обнаруживать, что какие цвета поддерживаны, но приложение может обнаружить общее число этих цветов извлекая цветное решение устройства. Цветное решение, определенное на цветных битах за пиксель, равняется величине COLORRES возвращанной функцией GetDeviceCaps. Устройство, которое имеет цветное решение 18 имеет 262,144 возможных цвета. Если приложение просит цвет, что не поддерживан, Окно выбирает подходящую аппроксимацию.

Как только логическая палитра будет создана, приложение может изменить цвета в палитре используя функцию SetPaletteEntries. Если логическая палитра выбрана и реализована, изменяя палитру немедленно не влияет на цвета, отображанные. Приложение должно использовать UnrealizeObject и функции RealizePalette, чтобы корректировать цвета. В некоторых случаях, приложение возможно нужно отменяться выбор, unrealize, выбор и реализовывает логическую палитру, чтобы проверять, что цвета корректируются точно как попрошено. Если приложение выбирается логическую палитру в более, чем один контекст устройства, изменяется в логическую палитру влиять на все контексты устройства для которых он выбран.

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

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


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz