将 VS6 MFC 对话框应用程序外观升级到 VS2008
Posted
技术标签:
【中文标题】将 VS6 MFC 对话框应用程序外观升级到 VS2008【英文标题】:Upgrade appearance of VS6 MFC dialog application to VS2008 【发布时间】:2011-05-24 01:29:58 【问题描述】:我正在将一个 VS6 MFC 对话框应用程序更新到 VS2008。更新代码很容易,但对话框仍然具有老式的 VS6 外观。例如,组框有方形边缘并且是深灰色的。而不是 VS2008 应用程序 Group Box 的圆角和浅灰色。
如何强制我的应用程序使用 VS2008 MFC 对话框应用程序更现代的外观?
【问题讨论】:
看看这个帖子,告诉我们它是否能解决您的问题:***.com/questions/4582038/… 或者这个:***.com/questions/6078159/… 将应用程序编译为非 unicode 应用程序也可能是一个问题:请参阅this 问题的第二个答案。 @Mark,谢谢,这正是我想要的! 【参考方案1】:一个新的 MFC 项目会将以下内容添加到 stdafx.h:
// Define manifest directives to match platform
#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_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
我还将以下内容添加到我的项目中,以明确链接到 UXTHEME.LIB,其中子类基本控件以添加主题支持:
#ifdef _UXTHEME_H_
#pragma message( "Including uxtheme.lib for linking" )
#pragma comment(lib, "uxtheme.lib")
#endif
【讨论】:
以上是关于将 VS6 MFC 对话框应用程序外观升级到 VS2008的主要内容,如果未能解决你的问题,请参考以下文章
使用 VS6 C++ GUI 编辑器、MFC 以屏幕(像素)为单位调整全屏窗口大小?
如何从 VS2008 中的 C++ MFC 对话框中的日期/时间小部件中提取数据