vs2010做的MFC程序为啥是win98风格的?怎么改回win7风格?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vs2010做的MFC程序为啥是win98风格的?怎么改回win7风格?相关的知识,希望对你有一定的参考价值。

把下图中的Unicode字符集改为多字节字符集(图1)以后就从win7风格(图2)变为win98风格(图3)了?但是我现在不得不用多字节字符集,因为unicode字符集编译程序时有问题。怎么办?

把下图中的Unicode字符集改为多字节字符集(图1)以后就从win7风格(图2)变为win98风格(图3)了?但是我现在不得不用多字节字符集,因为unicode字符集编译程序时有问题。怎么办?

别用mfc了,他做出来的效果本身就非常恶心.
推荐使用wxwidget.
小程序就干脆用c#也好,开发快.

关于unicode, 你代码里应该是写的不太标准.要改很多.但是具体怎么改要看代码
参考技术A 这还真是个奇葩问题~

(转)MFC界面风格

以前在XP写的程序,现在系统换成了WIN7,现在对话框在编辑和预览的时候显示都如图一所示,可实际编译生成之后的显示却如图二所示,是什么问题?如何设置两者的显示风格使其保持一致?

技术分享图片

技术分享图片

------------------------------------------------------------------------------------------------------

 

猫腻在stdafx.h中.

看这个文件中是否有

  

  1. #ifdef _UNICODE
  2. #if defined _M_IX86
  3. #pragma comment(linker,"/manifestdependency:"type=‘win32‘ name=‘Microsoft.Windows.Common-Controls‘ version=‘6.0.0.0‘ processorArchitecture=‘x86‘ publicKeyToken=‘6595b64144ccf1df‘ language=‘*‘"")
  4. #elif defined _M_IA64
  5. #pragma comment(linker,"/manifestdependency:"type=‘win32‘ name=‘Microsoft.Windows.Common-Controls‘ version=‘6.0.0.0‘ processorArchitecture=‘ia64‘ publicKeyToken=‘6595b64144ccf1df‘ language=‘*‘"")
  6. #elif defined _M_X64
  7. #pragma comment(linker,"/manifestdependency:"type=‘win32‘ name=‘Microsoft.Windows.Common-Controls‘ version=‘6.0.0.0‘ processorArchitecture=‘amd64‘ publicKeyToken=‘6595b64144ccf1df‘ language=‘*‘"")
  8. #else
  9. #pragma comment(linker,"/manifestdependency:"type=‘win32‘ name=‘Microsoft.Windows.Common-Controls‘ version=‘6.0.0.0‘ processorArchitecture=‘*‘ publicKeyToken=‘6595b64144ccf1df‘ language=‘*‘"")
  10. #endif
  11. #endif
 

如果有, 还是界面风格不正确, 那么上面的代码去掉ifdef _UNICODE宏.

一般都是由于你的程序环境使用的是多字符集造成的.

转自:http://www.dewen.org/q/13588/VS2008%E4%B8%ADMFC%E7%9A%84%E5%AF%B9%E8%AF%9D%E6%A1%86%E7%95%8C%E9%9D%A2%E9%A3%8E%E6%A0%BC%E9%97%AE%E9%A2%98%E6%B1%82%E6%95%99%EF%BC%81

以上是关于vs2010做的MFC程序为啥是win98风格的?怎么改回win7风格?的主要内容,如果未能解决你的问题,请参考以下文章

visual studio 2010 中MFC可以实现win7那种界面风格?

MFC如何配置使用Win7风格的控件而不是XP风格控件

vs2010 MFC +win7下的程序 在win7上正常运行,Server2008就出错(ADO数据库连接出错)

fgets 提供资产,试图重新分发 vs2010 MFC 应用程序

用vs2008编译器,创建一个MFC程序,为啥第一次运行一定要崩溃呢?

VS2010+WinXP+MFC程序 无法定位程序输入点于动态链接库