我有一个使用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
...谢谢
答案 0 :(得分:2)
定义'给我的应用程序更现代化的外观'。我假设你不是在谈论XP风格的常用控件,而是一个不同的向导布局。您是否想在向导的顶部或左侧显示标题/横幅图形?查看m_psh.dwFlags中的属性表的配置参数:PSH_WIZARD97, PSH_WATERMARK, PSH_HEADER
,...
如果你正在谈论使用现代Office风格的“皮肤”作为你的向导(Feature Pack风格),那你就不走运了。对于使用Feature Pack的对话框,不能这样做。查看BCG Controls - 它会花钱,但它更新,你可以获得额外的功能。
如果它与你想要的完全不同,请发布它应该是什么样子的模型,和/或现在看起来像什么以及你不喜欢它的截图。
答案 1 :(得分:0)
你应该:
CWinApp
已替换为主程序文件中的CWinAppEx
; #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);