在VC中创建一个基于对话框的工程,在主对话框中添加一些按钮之类的控件
,代码不改变,只是选择不同的字符集对话框的样式就会改变,这是怎么回事儿呢?(VS2010,不论.net选择什么版本效果都一样,应该不是框架的问题)截图如下:1、选择多字节...
,代码不改变,只是选择不同的字符集对话框的样式就会改变,这是怎么回事儿呢?(VS2010,不论.net选择什么版本效果都一样,应该不是框架的问题)
截图如下:
1、选择多字节字符集,就会是VC6中的样式
2、选择unicode字符集,就会是windows7中的样式
1、选择多字节字符集,就会是VC6中的样式 展开
截图如下:
1、选择多字节字符集,就会是VC6中的样式
2、选择unicode字符集,就会是windows7中的样式
1、选择多字节字符集,就会是VC6中的样式 展开
1个回答
展开全部
打开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
改这个def可以在mbcs下实现windows7样式。
但是我建议使用unicode。
#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
改这个def可以在mbcs下实现windows7样式。
但是我建议使用unicode。
追问
我这样直接去掉,没什么问题吗?微软为什么这么整呢?
追答
去掉这个在自己机器上应该没问题: #ifdef _UNICODE
mbcs对有些样式在某些字符集的机器上可能不支持吧,详细你还是上微软官网看看吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询