逻辑调色板

【勇芳软件工作室】汉化HomePreviousNext

A 【逻辑调色板】是应用程序创建并与给定设备上下文关联的调色板。逻辑调色板可让应用程序定义和使用满足其特定需求的颜色。应用程序可以创建任意数量的逻辑调色板,将它们用于单独的设备上下文或在单个设备上下文之间进行切换。应用程序可以创建的最大调色板数量取决于系统的资源。

应用程序使用CreatePalette功能创建一个逻辑调色板。该应用程序填写LOGPALETTE结构,该结构指定每个条目的条目数和颜色值,然后应用程序将结构传递给CreatePalette.该函数返回应用程序在所有后续操作中使用的调色板句柄来标识调色板。要在逻辑调色板中使用颜色,应用程序使用SelectPalette函数将调色板选择到设备上下文中,然后使用RealizePalette函数实现调色板。一旦实现了逻辑调色板,调色板中的颜色就可以使用。

应用程序应将其逻辑调色板的大小限制为足够的条目来表示所需的颜色。应用程序不能创建大于最大调色板大小(与设备相关的值)的逻辑调色板。应用程序可以通过使用GetDeviceCaps函数获取最大大小来检索SIZEPALETTE值。

虽然应用程序可以为逻辑调色板中的给定条目指定任何颜色值,但不能由给定设备生成所有颜色。Windows不提供一种方式来发现支持哪种颜色,但应用程序可以通过检索设备的颜色分辨率来发现这些颜色的总数。以每像素的彩色位指定的颜色分辨率等于GetDeviceCaps函数返回的COLORRES值。具有18的颜色分辨率的设备具有262,144种可能的颜色。如果应用程序请求不支持的颜色,则Windows将选择适当的近似值。

一旦创建了逻辑调色板,应用程序可以使用SetPaletteEntries函数来更改调色板中的颜色。如果选择并实现逻辑调色板,更改调色板不会立即影响正在显示的颜色。应用程序必须使用UnrealizeObjectRealizePalette功能更新颜色。在某些情况下,应用程序可能需要取消选择,不实现,选择和实现逻辑调色板,以确保颜色按照要求精确更新。如果应用程序在多个设备上下文中选择一个逻辑调色板,则对逻辑调色板的更改会影响所选设备的所有设备上下文。

应用程序可以使用ResizePalette功能更改逻辑调色板中的条目数。如果应用程序减小大小,剩余的条目将保持不变。如果应用程序扩展了大小,Windows会将每个新条目的颜色设置为黑色(0,0,0),并将标志设置为零。

应用程序可以使用GetPaletteEntries函数检索给定逻辑调色板中条目的颜色和标志值。应用程序可以通过使用GetNearestPaletteIndex函数来检索给定逻辑调色板中最接近匹配指定颜色值的条目的索引。

当应用程序不再需要逻辑调色板时,它可以使用DeleteObject功能删除它。应用程序必须确保在删除调色板之前不再将逻辑调色板选择到设备上下文中。