VB程序实现XP效果的界面

来源:岁月联盟 编辑:zhu 时间:2007-02-01
  具体的实现方法如下:  

   ①:在你的窗体加入代码。如果是多个窗口,可以将此代码放到模块中。  

   代码如下:  

   '声明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的文件的内容如下:  

  
    
      version="1.0.0.0"
   processorArchitecture="X86"
   name="CompanyName.ProductName.YourApp"
   type="win32"
   />
   Your application description here.
   
   
      type="win32"
   name="Microsoft.Windows.Common-Controls"
   version="6.0.0.0"
   processorArchitecture="X86"
   publicKeyToken="6595b64144ccf1df"
  language="*"
  />
  

  

    

   将以上内容保存为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这么多的问题。如DELPHI、VC等,连API函数都可以直接使用,不用事先声明。相对来说更简单!