MFC向导外观

时间:2009-10-18 14:06:44

标签: mfc mfc-feature-pack

我有一个使用vS2008创建的基于MFC向导的应用程序(CPropertySheet,CPropertyPage)。我试图给我的应用程序几乎完成一个更现代的外观。我查看了CDHTMLDIalog,但它看起来很多工作而且没有太多记录。接下来我想我可以使用Feature Pack的一些功能。我发现了一个关于这个link text的帖子,但是已经将线程中提到的代码添加到我的应用程序的各个地方,但外观永远不会改变。

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);

还用CMFCPropertySheet&更换了CPropertySheet;带有CMFCPropertyPage的CPropertyPage

...谢谢

2 个答案:

答案 0 :(得分:2)

定义'给我的应用程序更现代化的外观'。我假设你不是在谈论XP风格的常用控件,而是一个不同的向导布局。您是否想在向导的顶部或左侧显示标题/横幅图形?查看m_psh.dwFlags中的属性表的配置参数:PSH_WIZARD97, PSH_WATERMARK, PSH_HEADER,...

如果你正在谈论使用现代Office风格的“皮肤”作为你的向导(Feature Pack风格),那你就不走运了。对于使用Feature Pack的对话框,不能这样做。查看BCG Controls - 它会花钱,但它更新,你可以获得额外的功能。

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

答案 1 :(得分:0)

你应该:

  • CWinApp已替换为主程序文件中的CWinAppEx;
  • 实施了Windows公共控件6.0清单(stdafx.h中的RT_MANIFEST资源或#pragma条目)
  • InitInstance()方法开头的下面代码(此代码应该已在New Project向导中添加):

    // 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);