VS 2008 feature pack 控件说明

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

 
 
  1. BOOL __stdcall CMFCVisualManagerOffice2007::SetStyle(Style style, LPCTSTR lpszPath)  
  2. {  
  3. if (m_Style == style && m_hinstRes >(HINSTANCE) 32)  
  4. {  
  5. return TRUE;  
  6. }  
  7. UNREFERENCED_PARAMETER(lpszPath);  
  8. CString strStyle(GetStyleResourceID(style));  
  9. HINSTANCE hinstRes = AfxFindResourceHandle(strStyle, AFX_RT_STYLE_XML);  
  10. if (::FindResource(hinstRes, strStyle, AFX_RT_STYLE_XML) == NULL)  
  11. {  
  12. TRACE(_T("Cannot load Style: %s\r\n"), strStyle);  
  13. ASSERT(FALSE);  
  14. return FALSE;  
  15. }  
  16. CleanStyle();  
  17. m_Style = style;  
  18. SetResourceHandle(hinstRes);  
  19. m_bAutoFreeRes = TRUE;  
  20. return TRUE;  

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

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

THE END