0

我有一个使用 vS2008 创建的基于 MFC 向导的应用程序(CPropertySheet、CPropertyPage)。我试图让我的应用程序几乎完成一个更现代的外观。我查看了 CDHTMLDIalog,但它看起来需要做很多工作,而且文档也不是很好。接下来我想我可以使用 Feature Pack 的一些功能。我找到了有关此链接文本的线程,但已将线程中提到的代码添加到我的应用程序的各个位置,但外观从未改变。

CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_Silver); CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOffice2007)); CDockingManager::SetDockingMode(DT_SMART); RedrawWindow(NULL, NULL, RDW_ALLCHILDREN | RDW_INVALIDATE | RDW_UPDATENOW | RDW_FRAME | RDW_ERASE);

还将 CPropertySheet 替换为 CMFCPropertySheet 和 CPropertyPage 替换为 CMFCPropertyPage

谢谢...

4

2 回答 2

2

定义“让我的应用看起来更现代”。我假设您在这里谈论的不是 XP 风格的通用控件,而是不同的向导布局。您想要在向导的顶部还是左侧显示标题/横幅图形?查看 m_psh.dwFlags 中属性表的配置参数:PSH_WIZARD97, PSH_WATERMARK, PSH_HEADER,...

如果您正在谈论为您的向导使用现代 Office 风格的“皮肤”(功能包风格),那么您就不走运了。不能对带有功能包的对话框执行此操作。看看 BCG Controls - 它会花钱,但它是最新的,并且您可以获得额外的功能。

如果它与您想要的完全不同,请发布它应该是什么样子的模型,和/或它现在的样子以及您不喜欢它的什么的屏幕截图。

于 2009-10-23T14:20:54.423 回答
0

你应该有:

  • CWinAppCWinAppEx在您的主程序文件中替换为;
  • 已实现 Windows Common Controls 6.0 清单(RT_MANIFEST 资源或#pragmastdafx.h 中的条目)
  • 方法开头的以下InitInstance()代码(此代码应该已添加到新建项目向导中):

    // InitCommonControlsEx() is required on Windows XP if an application
    // manifest specifies use of ComCtl32.dll version 6 or later to enable
    // visual styles.  Otherwise, any window creation will fail.
    INITCOMMONCONTROLSEX InitCtrls;
    InitCtrls.dwSize = sizeof(InitCtrls);
    // Set this to include all the common control classes you want to use
    // in your application.
    InitCtrls.dwICC = ICC_WIN95_CLASSES;
    InitCommonControlsEx(&InitCtrls);
    
于 2009-10-19T13:31:18.453 回答