更改字符集后,MFC 应用程序的视觉外观发生了变化

MFC applications' visual appearence changed after changing character set

本文关键字:视觉 外观 发生了 变化 应用程序 MFC 字符集      更新时间:2023-10-16

最初我的应用程序是在 Unicode 字符集(项目属性 -> 通用 -> 字符集)上构建的,但由于不可避免的原因,我不得不使用多字节字符集。属性表的外观立即变得不那么吸引人了。编辑框凹陷,按钮、选项卡不圆润,工作表的颜色已更改。此更改影响了我的属性表、页面和对话框。如何使应用程序看起来正常。我使用Windows 7。

谢谢。

您需要使用 Unicode char set 或修改文件 stdafx.h。在那里你可以看到这种代码:


#ifdef _UNICODE
#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_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 #endif

您可以删除第一个#ifdef _UNICODE,最后#endif,您将获得带有 Multy 字节字符集的新样式控件,但这不是一个好主意,一些 MFC 控件(尤其是 VS 2010 中的新控件,例如 CMFCButton 控件)在具有新视图样式的非 Unicode 字符集程序中存在问题。或者您需要更改回Unicode应用程序,或者使用某些控件可能会遇到大问题。