VS2008中,设置了使用多字节字符集后,按钮变成了Win2000样式的问题?

深梵 2009-04-01 12:20:52
我的编译器是VIsual Studio 2008,操作系统是Vista Home Basic。
默认MFC生成的程序是使用使用 Unicode 字符集的,这时候运行时看到的按钮控件是周边带光泽的Vista/XP样式。但是由于个别编译不通过,换成使用多字节字符集后,按钮变成了Win2000样式,显得很不美观。
这一次是毕业答辩时要演示的程序,因此希望能够界面美观些。请问如何处理设置了使用多字节字符集后,按钮变成了Win2000样式的问题?
另外,为什么使用 Unicode 字符集的,部分编译就不能通过呢?
...全文
808 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
注册掉就 可以随xp 样式显示了。
brightmind 2010-05-18
  • 打赏
  • 举报
回复
3楼说的对。把#ifdef _UNICODE注释了就ok了。
http://www.tech-archive.net/Archive/VC/microsoft.public.vc.mfc/2006-11/msg01441.html
alexmayer 2009-08-27
  • 打赏
  • 举报
回复
这个看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



你不定义_UNICODE他就不用XP样式。
alexmayer 2009-08-27
  • 打赏
  • 举报
回复
如果有你出问题的工程就可以看看是什么问题了
azureelfwang 2009-08-22
  • 打赏
  • 举报
回复
和楼主遇到一样的问题,为什么换成多字节字符集之后程序外观就变了呢??

24,856

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧