本来这个包里存在一个DialogImpl可惜没有实现VisualManager,省了好多代码啊,这么好的东西,为啥不早点出来呢。

在使用VS 2008 vc增强包的过程中发现一个问题VS 2008 feature pack 中对mfc进行了升级,使得mfc可以很简单的建立像office 2007这种风格的界面。问题如下:
使用向导建立的mfc office 2007界面可以正常运行.使用最简单的对话框工程,再来使用office 2007这个时出错,位置在:

VS 2008 feature pack 控件说明  第1张

  1. BOOL__stdcallCMFCVisualManagerOffice2007::SetStyle(Stylestyle,LPCTSTRlpszPath)
  2. {
  3. if(m_Style==style&&m_hinstRes>(HINSTANCE)32)
  4. {
  5. returnTRUE;
  6. }
  7. UNREFERENCED_PARAMETER(lpszPath);
  8. CStringstrStyle(GetStyleResourceID(style));
  9. HINSTANCEhinstRes=AfxFindResourceHandle(strStyle,AFX_RT_STYLE_XML);
  10. if(::FindResource(hinstRes,strStyle,AFX_RT_STYLE_XML)==NULL)
  11. {
  12. TRACE(_T("CannotloadStyle:%s\r\n"),strStyle);
  13. ASSERT(FALSE);
  14. returnFALSE;
  15. }
  16. CleanStyle();
  17. m_Style=style;
  18. SetResourceHandle(hinstRes);
  19. m_bAutoFreeRes=TRUE;
  20. returnTRUE;
  21. }

你能看出来是什么问题吗?从代码来看是一个资源载入错误。我对比了一次我写的代码和可以运行的工程代码的区别,感觉从代码上没什么问题。网上搜了一下,VS 2008 feature pack 还没中文的遇到这个问题的呢,只有一个一个老外的论坛上有。讨论来讨论去,写是本地资源载入的问题,比较好玩。原新东西,总是有一些未知的错误。遇到了还是要搞定他。

VS 2008 feature pack 确实是个不错的东西,至少有这个,可以不用那个盗版的BCGCBPro了。觉得VisualManager还是有些功能缺失,比如Dialog要支持VisualManager就做不到。看了看CFrameImpl的代码,觉得模访这个写一个DialogImpl就可以了。

转载请说明出处
知优网 » VS 2008 feature pack 控件说明

发表评论

您需要后才能发表评论