金山毒霸2002自推出以来,广受用户的喜爱。今天在这里我要谈的不是金山毒霸的功能,而是其别具一格的界面。本人早就对金山毒霸的界面垂涎三尺,如果自己的程序里能用上金山毒霸那样的界面,那该多爽!
说干就干,本着由浅入深的原则,我选择了金山毒霸的一个附带工具:Duba_GOP.exe来开刀。该工具在金山毒霸的网站上可以下载到,其界面如图所示:
好,开始准备工具:
提取资源工具:freeRes
编程工具:VC++
还有一个Vc自带的小工具:spy++
之所以不用大家都熟悉的eXeScope,是因为Duba_GOP.exe已经被压缩过了,有些资源提取工具无法再用。
用freeRes打开Duba_GOP.exe,可看到其带有20个bmp位图,有整个窗体的背景图,右上角两个小按钮“主页”和“关闭”的三态位图,以及两个大按钮“浏览文件夹”和“开始扫描”的三态位图。看到这些图片,即可猜到该软件是没有标题栏的,而显示出来的标题栏只是背景,而且连同窗体下部的金山毒霸的标志都是属于同一幅背景图片!那么“标题栏”上的“主页”,“关闭”是怎么回事?用spy++来试一下,发现这两个是Button,而不是Bitmap。同样“浏览文件夹”和“开始扫描”也是Button,随即想到这四个Button可以用VC中的CBitmap类来实现。而窗体下部的超链接仅仅是Static静态框。把这些难点分析出来了,下面就可以开始我们的编程之旅了,不过记得把有用的图片保存下来。
一.窗体背景问题
打开vc,新建一个对话框工程,名为Interface。去掉缺省的一个Static和两个Button,在窗体上点右键,在出现的属性对话框中,去掉标题栏,再将用freeRes提取的所有图片Import进工程的资源中。修改CInterfaceDlg::OnPaint()如下: