在VS中创建一个基于对话框的工程,在代码不变的情况下,仅仅是改变工程使用的字符集,对话框的风格就会改变,如下图所示。
1、使用Unicode字符集(Use Unicode Character Set):
2、使用多字节字符集(Use Multi-Byte Character Set):
很显然,使用多字节字符集时,对话框风格变成了VC6下的样式,不美观。
在实际项目中,很多工程都使用的是多字节字符集,在这种情况下,可否实现Unicode字符集下的对话框风格呢?
答案是肯定的,解决方法如下:
将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_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
#ifdef _UNICODE和#endif注释掉就可以了。