VB編程實現WindowsXP風格的界面
雖然WindowsXP的界面非常華麗。但是令人遺憾的是,我們用VB寫的程序除了菜單和窗口的外觀是XP風格外,其他控件還是一如既往的是普通風格。我想,有的程序在XP下有XP的風格,VB也一定有辦法實現XP的風格。后來筆者在網上看到一篇介紹XML的文章,又在網上找到了一篇實現XP風格的文章,經過自己的實踐,終于找到了VB程序實現XP風格的辦法。為了使其他的網友不至于走像我這樣的多的彎路,將此辦法寫出來,與大家共同提高!!
具體的實現方法如下:
①:在你的窗體加入代碼。如果是多個窗口,可以將此代碼放到模塊中。
代碼如下:
注意:千萬不要在Form_load()事件下寫InitCommonControls這句話,否則你的窗體會啟動不了。(不要怪我沒告訴你啊'''')
②:建立一個和你的.exe同名的.exe.manifest文件(假如:如果你最后編譯好的文件名為WindowXPStyle.exe,則建立一個文件名為WindowXPStyle.exe.manifest的文件),并且此文件必須存在于和你Exe文件的同一目錄下。
以WindowXPStyle.exe為例,則這個WindowXPStyle.exe.manifest的文件的內容如下:
將以上內容保存為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函數都可以直接使用,不用事先聲明。相對來說更簡單!
具體的實現方法如下:
①:在你的窗體加入代碼。如果是多個窗口,可以將此代碼放到模塊中。
代碼如下:
| '聲明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這么多的問題。如DELPHI、VC等,連API函數都可以直接使用,不用事先聲明。相對來說更簡單!