系统风格.manifest

程序的XP化已经不是一个新话题了,使用图片或ActiveX控件的比比皆是,但这样的XP化并不是真正的,只是模仿了XP的外观。使用.manifest文件倒是真的,不过在exe文件之外还要有一个.manifest文件,也不太方便,尤其是在做只有一个exe文件的小工具时。那么,能不能把.manifest文件整合到exe里面呢,经过测试,我终于发现了方法。注意:有程序员用了本方法后反应没有效果,再此特别申明,这是真正的XP样式,使用的资源也是XP系统里的,所以要看到效果,必须是在XP系统,并使用XP风格样式时才行,Win2000的就不要试了,在系统不是XP外观时,用此方法生成的程序也不会有XP样式。另外,在VB IDE里面也不会有效果,需要编译为.exe文件。下面我们来具体看一下实现的方法。请先下载本文附件的"XPStyle.res"文件,正常编辑程序界面后(如图),在工程资源管理器窗口的空白区域点鼠标右键,选择“添加”->“添加文件”,选择本文附件中的"XPStyle.res",具体过程请参考附图。第二步,在程序中声明API函数InitCommonControls,声明语句为Private Declare Sub InitCommonControls Lib "comctl32.dll" (),在启动窗口的Initialize事件中调用此函数。注意,是Initialize事件,如果在Load事件中调用此函数将造成窗口不能被正确加载。现在将其编译为.exe文件就可以看到效果了。这样实现的XP样式还有一个问题,就是如果把控件放在Frame控件里,将不能正常显示,尤其是OptionButton,将完全变成黑色。解决起来其实也不难,就是不要把控件做为Frame的子窗口,如果必须要这样做,可以在Frame里再添加一个PictureBox,将控件做为PictureBox的子窗口
manifest 文件大小:625B