Microsoft基础类 (MFC) 库支持 Windows 通用控件。 通用控件包含在 Windows 中,库包含在 Visual Studio 中。 MFC 库提供了增强现有类的新方法,以及支持 Windows Common Controls 的其他类和方法。 生成应用程序时,应遵循以下部分中介绍的编译和迁移要求。
编译需求
支持的版本
MFC 支持所有版本的通用控件。 有关 Windows Common Controls 版本的信息,请参阅 Common Control Versions。
支持的字符集
Windows Common Controls 仅支持 Unicode 字符集,而不支持 ANSI 字符集。 如果在命令行上生成应用程序,请使用以下两个定义 (/D) 编译器选项将 Unicode 指定为基础字符集:
/D_UNICODE /DUNICODE
如果在 Visual Studio 集成开发环境(IDE)中生成应用程序,请在项目属性的“常规”节点中指定字符集属性的 Unicode 字符集选项。
迁移要求
如果使用 Visual Studio IDE 生成使用 Windows 通用控件的新 MFC 应用程序,IDE 会自动声明相应的清单。 但是,如果从 Visual Studio 2005 或更早版本迁移现有 MFC 应用程序,并且想要使用 Common Controls,IDE 不会自动提供清单信息来升级应用程序。 相反,必须在预编译头文件中手动插入以下源代码:
#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_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
#endif