正文

不用控件可以令VB程序XP化2005-09-25 21:59:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/iamben250/5326.html

分享到:

以前用过不少XP控件,今天看到一片帖子讲到不用控件可以令VB程序XP化。不敢独享,建议长期置顶。    虽然WindowsXP的界面非常华丽。但是令人遗憾的是,我们用VB写的程序除了菜单和窗口的外观是XP风格外, 其他控件还是一如既往的是普通风格。我想,有的程序在XP下有XP的风格,VB也一定有办法实现XP的风格。后来笔者在网上看到 一篇介绍XML的文章,又在网上找到了一篇实现XP风格的文章,经过自己的实践,终于找到了VB程序实现XP风格的办法。为了使 其他的网友不至于走像我这样的多的弯路,将此办法写出来,与大家共同提高!!    作者:崔占民    Email:CuiZM@163.com    具体的实现方法如下:    ①:在你的窗体加入代码。如果是多个窗口,可以将此代码放到模块中。 代码如下: '声明API函数 Private Declare Sub InitCommonControls Lib "comctl32.dll" () Private Sub FORM_Initialize()   InitCommonControls End Sub    注意:千万不要在FORM_load()事件下写InitCommonControls这句话,否则你的窗体会启动 不了。(不要怪我没告诉你啊~~~~)    ②:建立一个和你的.exe同名的.exe.manifest文件(假如:如果你最后编译好的文件名为Window XPStyle.exe,则建立一个文件名为WindowXPStyle.exe.manifest的文件),并且此文件必须存 在于和你Exe文件的同一目录下。 以WindowXPStyle.exe为例,则这个WindowXPStyle.exe.manifest的文件的内容如下: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="CompanyName.ProductName.YourApp" type="win32" /> <description>Your application description here.</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </assembly> 将以上内容保存为WindowXPStyle.exe.manifest。并且和执行文件放在一个目录下(一定要记住)。    到此为止,我们的程序已经完成,不过在VB的设计环境下运行是看不到XP效果的。必须编译成可执行文件运行才可以。 (因为这个我试了不知多少遍,以为VB程序就是实现不了XP效果呢~~,没想到必须编译成执行文件才可以)。    相信大家也看到了不足之处,就是放在FRAME控件中的单远按钮有些“麻烦”!为了解决此问题,可以将单选按钮放在 PICTURE控件中(以PICTURE控件作为容器),再将PICTURE控件放在FRAME控件中,就可以了。     常见问题和注意事项    由于VB6自身的原因,Windows XP再一次给我们留了一些难题:    一、工具栏问题:工具栏控件一定要用Microsoft Windows Common Controls 5.0,而不要用Microsoft Windows Common Controls 6.0。因为此InitCommonControls API函数是位于comctl32.dll(Microsoft Windows Common Controls 5.0控件的动态链接库中)。    二、图形风格按钮的问题:很遗憾,我们不能再使用Graphical风格的命令按钮(即Style=1的命令按钮控 件)了。因为一旦将命令按钮的Style属性设为1,那么它将失去Windows XP风格。    注:其它语言写的程序也是一样,实现起来不会有VB这么多的问题。如DELPHI、VC等,连API函数都可以直接 使用,不用事先声明。相对来说更简单     如果想在其他系统中把程序XP化,可以使用WinXPC Engine.ocx控件,我用过,效果不错

阅读(3509) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册