VB如何生成WINDOW XP风格界面!

来源:互联网 发布:淘宝店铺精品橱窗推荐 编辑:程序博客网 时间:2024/04/29 09:57

 虽然WindowsXP的界面非常华丽。但是令人遗憾的是,我们VB写的程序除了菜单和窗口的外观是XP风格外,其他控件还是一如既往的是普通风格。我想,有的程序在XP下有XP的风格,VB也一定有办法实现XP的风格。后来笔者在网上看到一篇介绍XML文章,又在网上找到了一篇实现XP风格的文章,经过自己的实践,终于找到了VB程序实现XP风格的办法。为了使其他的网友不至于走像我这样多的弯路,将此办法写出来,与大家共同提高!!

                                                                     
    具体实现法如下
    ①:在你窗体加入代码。如果是多个窗口,可以将代码到模块中。
 
    代码如下:
    '声明API函数
    Private Declare Sub InitCommonControls Lib "comctl32.dll" ()
    Private Sub Form_Initialize()
        InitCommonControls
    End Sub
    注意千万不要在Form_load()事件下写InitCommonControls这句否则你窗体启动不了。(不要怪我没告诉你啊~~~~)
 
    ②:建立个和你的.exe同名的.exe.manifest文件假如如果你最后编译好文件名为WindowXPStyle.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编写的程序在Windows XP中看上去是很华丽的!
 
    注:其它语言写的程序也是一样,实现起来不会VB这么多问题。如DELPHIVC等,连API函数可以直接使用,不用事先声明。相对来说更简单!

 

原创粉丝点击