+&%/&、::"/&G/&或相应的 >8 函数来实现上述的两个步骤。
在实现调色板的过程中,通过在主框架类中处理 :2; 定义的消息
:6B?#"C#:> #--#、:6B> #--#># 及视图类中处理自定义消息
:6B!"#> 8H#(该消息在主框架窗口定义如下:I2J:6B"#> 8H#>
:6B+#"A)来实现调色板的操作。当系统需要处理调色板的变化时,将向程序
的主窗口发送 :6B?#"C#:> #--#、:6B> #--#>#,例如当某一窗
口即将激活时,主框架窗口将收到 :6B?#"C#:> #--# 消息,通知该窗口将要收
到输入焦点,给它一次机会实现其自身的逻辑调色板;当系统调色板改变后,主框架窗口
将收到 :6B> #--#># 消息,通知其它窗口系统调色板已经改变,此时每一窗
口都应该实现其逻辑调色板,重画客户区。"
由于上述的调色板变更消息是发往主框架窗口的,所以我们只能在主窗口中响应这两个消
息,然后由主框架窗口通知各个视窗,使得程序激活时能自动装载自己的调色板。我们定
义的用户消息 :6B"#> 8H#> 用于主框架窗口通知视窗它已经收到调色板变更消息,
视窗应该协调其调色板。下面我们给出了各个消息的响应处理函数的具体实现代码和注释:
""""" 注:读者可以从后面的显示部分的实现看出我们在显示时实现了逻辑调色板。上述
的处理相对来说比较繁琐复杂,可能对于初学者来说也比较难于理解,所以这样作的好处
是在取灰度位图时可以不再考虑文件中的颜色表信息,提高了文件读取速度,笔者在开发
一个基于机器泳醯南钅渴辈捎玫木褪钦庵址椒 KL吮冉下"獾男 MN4O
三、"图像的显示" 显示 85 位图数据可以通过设备上下文 对象的成员函数
::5=&或 ::+%5&来实现,也可以通过 >8 函数
+855-F%或 +%855来实现,函数中具体所用到的各个参数的意
义可以参考"6+。其中 +%855和 ::+%5&可以将图像进行放
大和缩小显示。当从文档中装入位图文件时,"853; 类的 !8/&2/ 函数将被
调用,因此可以在该函数中实现对视图尺寸的设置,用于正确的显示位图,然后就可以在
视图类的"!/;()函数中正确的显示位图了。这两个函数的具体实现代码分别如下所
示:""""""
四、"小结" 在本期讲座里我们主要介绍了如何操作灰度位图,它具有较强的代表性,
同时为后续的图像处理编程的学习作了必要的准备工作,经过学习,对于如何操作其它类
型的 56 格式的图像文件,可以达到举一反三的作用。""
VC 数字图像处理编程讲座之四"
BMP 图像显示的特效操作"
上期讲座中我们主要讲述了 56 图像数据的存取、图像的显示和调色板的操作等内容,
在上面的学习基础上,我们可以进一步深化,学习并掌握图像特效显示技术。有了这种技
术,可以用来在今后的项目开发中美化我们的软件界面,提高软件的视觉效果。在如今的
商业软件中,几乎每一幅图像的显示都采用了图像特效显示,例如读者比较熟悉的
:2; 的屏幕保护程序就采用了各种各样的图像特效显示,使人感到眼花缭乱和耳目
一新。专业图像处理软件更是提供了丰富的显示方式供用户使用,可以方便的在程序中实