天天看點

vs2010 MFC所使用字元集不同時導緻控件外觀不一樣的解決辦法方法1:修改stdAfx.h中的代碼方法2:采用.manifest檔案修改界面風格

方法1:修改stdAfx.h中的代碼

#if defined _M_IX86

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")

#elif defined _M_IA64

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")

#elif defined _M_X64

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")

#else

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")

#endif

方法2:采用.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="Microsoft.Windows.dummy"

     type="win32"/>

  <description>Your app 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>

(1)将以上内容複制儲存為XXX.manifest檔案,并作為資源檔案加入到工程中,資源ID為IDR_XXX;

(2)如果是.dll工程,則在Resource.h中添加:

   #define IDR_XXX                    200

   并在StdAfx.h中添加

   #define ISOLATION_AWARE_ENABLED    100

(3)如果是.exe工程,則在Resource.h中添加:

   #define IDR_XXX                    100