1. 程式人生 > >MFC如何配置使用Win7風格的控件而不是XP風格控件

MFC如何配置使用Win7風格的控件而不是XP風格控件

encoding arc controls 配置文件 lang 文件 方式 ckey 樣式

你是不是遇到過MFC控件在項目中樣式是win7風格,運行exe程序又變成了比較古老的XP風格?想要修改控件樣式,首先得知道影響界面樣式的原因。

影響界面控件風格的因素是:VS項目使用的字符集會影響使用的界面控件的版本,從而影響界面效果。

Unicode版會自動嵌入Win7風格的控件,多字節版則不會嵌入Win7風格控件,而是使用很老風格的控件。而不同的字符集默認情況下會決定使用的控件版本。

因此,將界面樣式修改的最簡單粗暴的方式就是修改字符集。將多字節改為Unicode版本。

但是,有些程序將多字節改為Unicode版本會報錯,改錯將是很麻煩的事情,那這樣就沒辦法了嗎?

http://www.cjjjs.com/paper/xmkf/201661205622573.aspx這篇文章的作者給我們提供了解決方案。

總結出的解決步驟是:

1、點擊VS項目的配置屬性-》清單工具。將嵌入清單改為否,運行程序。發現在程序debug目錄下,會生成manifest配置文件,其名稱為:項目名.exe.manifest。

2、打開manifest配置文件,在如下代碼位置添加<dependency> 和</dependency> 之間的代碼。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="
1.0"> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*"> </assemblyIdentity> </dependentAssembly> </dependency> <trustInfo xmlns="
urn:schemas-microsoft-com:asm.v3">

3、重新編譯運行即可。

註意:將嵌入清單改為否之後,此時manifest配置文件是不內嵌的,所以在運行的時候,使用要和exe一起,不能缺少。這樣也就不方便了。因此,可將編譯生成的:項目名.exe.manifest文件放入源程序目錄,並將該配置文件名稱放入清單工具的附加清單文件下,嵌入清單改為是。即可,

MFC如何配置使用Win7風格的控件而不是XP風格控件