Visual Studio 2010 MFC对话框:Aero风格?

7

目前,我的MFC对话框看起来像Windows 98。有没有办法让它使用活动的Windows 7样式(aero)?

(我在使用C++)

3个回答

16

尝试将这个添加到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

谢谢,这是一个好的解决方案,现在我可以避免创建和嵌入清单的所有麻烦。刚刚在Win32应用程序上测试了一下,效果如预期。 - JustAMartin
我知道我晚了两年,但这在MFC应用程序中仍然适用。感谢这个提示。 - Vladimir Kocjancic
1
对于使用多字节字符集而不是Unicode的项目,还有希望吗?我没有设置_UNICODE。 - masche
嗨@masche - 根据这个论坛帖子,多字节应用程序中的v6公共控件存在问题。有人提到编辑控件或者CEditView可能存在问题。其他人则表示他们没有遇到任何问题。你可以尝试注释掉_UNICODE宏定义并进行测试。 - Aidan Ryan

3

0

请确保在您的应用程序中添加一个有效的清单文件。


我已经在属性中启用了清单生成(默认情况下)。 - Kar
仅因生成了清单并不意味着它正在指定常规控件6。通过文件>打开,在Visual Studio的对象浏览器中打开并查看检查其资源中的当前清单,以查看您的(非主题化)EXE。 - Aidan Ryan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接