vs2008 mfc工程界面显示win98风格问题

来源:互联网 发布:smartgit linux 破解 编辑:程序博客网 时间:2024/05/20 16:35
今天用vs2008 MFC对话框做一个测试软件的时候,发现在编辑的时候,界面显示的是xp风格,编译运行之后显示的是win98风格。
编辑显示的界面如图-1
 
图-1
 

运行之后显示的界面如图-2: 

图-2
 
运行后的界面是巨丑win98界面,于是问度娘,度娘向网友们求助征集意见。网友们很热心,给出了很多意见, 如下:
1. 在工程中加入
manifest文件的,具体参考 http://blog.csdn.net/greenerycn/article/details/3150247。
2. 有建议删除工程重建的( 我没试过,有兴趣的可以试试) 。
3. 在“stdafx.h”文件中加入 
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")  这条语句(这个我试过可行)。
4. 如此等等,太多了,我没去试,也就不罗列了。

受第3条建议的启发,我将之前能正常显示的工程和这个不正常工程 
的“stdafx.h”文件进行对比,发现两者有差别。
正常工程的 
“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 

而不正常工程的 
 “stdafx.h”文件中没有,于是乎 我将这段代码拷贝过去,重新编译之后显示正常了,问题得到解决。在此谢谢热心的网友们。另外看到这里的网友们,第3条很好用,但是在不同版本的系统不同的硬件平台中可能会有问题,建议加上后面那段代码。
0 0
原创粉丝点击