你是否是遇到過MFC控件在項目中樣式是win7風格,運行exe程序又變成了比較古老的XP風格?想要修改控件樣式,首先得知道影響界面樣式的緣由。工具
影響界面控件風格的因素是:VS項目使用的字符集會影響使用的界面控件的版本,從而影響界面效果。spa
Unicode版會自動嵌入Win7風格的控件,多字節版則不會嵌入Win7風格控件,而是使用很老風格的控件。而不一樣的字符集默認狀況下會決定使用的控件版本。debug
所以,將界面樣式修改的最簡單粗暴的方式就是修改字符集。將多字節改成Unicode版本。code
可是,有些程序將多字節改成Unicode版本會報錯,改錯將是很麻煩的事情,那這樣就沒辦法了嗎?xml
http://www.cjjjs.com/paper/xmkf/201661205622573.aspx這篇文章的做者給咱們提供瞭解決方案。blog
總結出的解決步驟是:it
一、點擊VS項目的配置屬性-》清單工具。將嵌入清單改成否,運行程序。發如今程序debug目錄下,會生成manifest配置文件,其名稱爲:項目名.exe.manifest。io
二、打開manifest配置文件,在以下代碼位置添加<dependency> 和</dependency> 之間的代碼。asm
<?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">
三、從新編譯運行便可。編譯
注意:將嵌入清單改成否以後,此時manifest配置文件是不內嵌的,因此在運行的時候,使用要和exe一塊兒,不能缺乏。這樣也就不方便了。所以,可將編譯生成的:項目名.exe.manifest文件放入源程序目錄,並將該配置文件名稱放入清單工具的附加清單文件下,嵌入清單改成是。便可,