EXCEL VBA:自定义 PaletteMode

2015-04-13 12:08 阅读 67 次 评论关闭

如果需要更精确地控制实际显示的颜色,可用 256 色映象定义一个自定义调色板。要实现这一点,需赋值给窗体的 Palette 属性一个 256 色映象(.bmp、.cur、ico、.dib 或 .gif ),并将 PaletteMode 属性设置为 Custom。位图不用很大,甚至一个单独的像素就可以为窗体或图片框定义 256 种颜色。这是因为位图的逻辑调色板能列出 256 种颜色,而不论那些颜色是否全部出现在位图中。

因为有缺省方法,所以使用 RGB 函数定义的颜色也必须存在于位图中。如果此颜色不匹配,它将被映射到逻辑调色板中最接近的匹配色,此逻辑调色板属于由 Palette 属性指定的位图。

要想在运行时设置自定义,需在 Form_Load 事件中添加下列代码(假定具有所选调色板的图象已经被赋值给名为 Image1 的图象控件):

'将调色板从 Image1 赋值给窗体。
Form1.Palette = Image1.Picture
'使用 Custom 模式。
Form1.PaletteMode = vbPaletteModeCustom

另外,也可使用图片对象来达到相同的效果,而无需另加图象控件:

Dim objPic As Picture 
Set objPic = LoadPicture(App.Path & "\Pastel.bmp ")
'将图片对象的调色板赋值给窗体。
Form1.Palette = objPic
'使用 Custom 模式。
Form1.PaletteMode = vbPaletteModeCustom

当希望在应用程序中,自始至终保持同一个调色板时,自定义是最佳的选择。

注意 在不能使用任何 256 色图形的情况下,使用“Custom PaletteMode”也可增强应用程序的性能。如果将窗体的 PaletteMode 设置为自定义的,并将 Palette 属性置为空,则该窗体就能快速装入,因为不会发生调色板匹配的问题。

关于图片对象的详细信息,请参阅本章后面的“使用图片对象”。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:EXCEL VBA:自定义 PaletteMode | 猎微网

评论已关闭!