vs2008 feature pack

阅读更多
在使用vs2008 vc增强包的过程中发现一个问题
vs2008 feature pack 中对mfc进行了升级,使得mfc可以很简单的建立像office 2007这种风格的界面。
问题如下:
使用向导建立的mfc office 2007界面可以正常运行.
使用最简单的对话框工程,再来使用office 2007这个时出错,
位置在:
BOOL __stdcall CMFCVisualManagerOffice2007::SetStyle(Style style, LPCTSTR lpszPath)
     {
           if (m_Style == style && m_hinstRes >(HINSTANCE) 32)
           {
               return TRUE;
           }
 
  UNREFERENCED_PARAMETER(lpszPath);
       CString strStyle(GetStyleResourceID(style));
       HINSTANCE hinstRes = AfxFindResourceHandle(strStyle, AFX_RT_STYLE_XML);
 
 if (::FindResource(hinstRes, strStyle, AFX_RT_STYLE_XML) == NULL)
      {
           TRACE(_T("Cannot load Style: %s\r\n"), strStyle);
           ASSERT(FALSE);
           return FALSE;
       }
 
 CleanStyle();
       m_Style = style;
       SetResourceHandle(hinstRes);
       m_bAutoFreeRes = TRUE;
 
 return TRUE;
   }
你能看出来是什么问题吗?
从代码来看是一个资源载入错误。
我对比了一次我写的代码和可以运行的工程代码的区别,感觉从代码上没什么问题。
网上搜了一下,还没中文的遇到这个问题的呢,只有一个一个老外的论坛上有。
讨论来讨论去,写是本地资源载入的问题,比较好玩。
     原新东西,总是有一些未知的错误。
     遇到了还是要搞定他。
 
     问题出来资源上就比较了一次resource.h,依然没有发现问题。
     后面再比较了一次*.rc文件,问题终于找到了。
     少了下面几句:
     #if !defined(_AFXDLL)
     #include "afxribbon.rc"              // MFC ribbon and control bar resources
     #endif
     vc这玩意也真够烦的,写个代码要了解这么多东西。
     好了,加上就可以了。
vc2008 feature pack 确实是个不错的东西,至少有这个,可以不用那个盗版的BCGCBPro了。
觉得VisualManager还是有些功能缺失,比如Dialog要支持VisualManager就做不到。
    看了看CFrameImpl的代码,觉得模访这个写一个DialogImpl就可以了。
    本来这个包里存在一个DialogImpl可惜没有实现VisualManager。
    省了好多代码啊,这么好的东西,为啥不早点出来呢。
 
 

lixiaomail
2008-08-21

你可能感兴趣的:(MFC,Office,VC++,XML)