VS 2008 feature pack 控件說(shuō)明
在使用VS 2008 vc增強(qiáng)包的過(guò)程中發(fā)現(xiàn)一個(gè)問(wèn)題VS 2008 feature pack 中對(duì)mfc進(jìn)行了升級(jí),使得mfc可以很簡(jiǎn)單的建立像office 2007這種風(fēng)格的界面。問(wèn)題如下:
使用向?qū)Ы⒌膍fc office 2007界面可以正常運(yùn)行.使用最簡(jiǎn)單的對(duì)話框工程,再來(lái)使用office 2007這個(gè)時(shí)出錯(cuò),位置在:
- 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;
- }
你能看出來(lái)是什么問(wèn)題嗎?從代碼來(lái)看是一個(gè)資源載入錯(cuò)誤。我對(duì)比了一次我寫的代碼和可以運(yùn)行的工程代碼的區(qū)別,感覺(jué)從代碼上沒(méi)什么問(wèn)題。網(wǎng)上搜了一下,VS 2008 feature pack 還沒(méi)中文的遇到這個(gè)問(wèn)題的呢,只有一個(gè)一個(gè)老外的論壇上有。討論來(lái)討論去,寫是本地資源載入的問(wèn)題,比較好玩。原新東西,總是有一些未知的錯(cuò)誤。遇到了還是要搞定他。
VS 2008 feature pack 確實(shí)是個(gè)不錯(cuò)的東西,至少有這個(gè),可以不用那個(gè)盜版的BCGCBPro了。覺(jué)得VisualManager還是有些功能缺失,比如Dialog要支持VisualManager就做不到。看了看CFrameImpl的代碼,覺(jué)得模訪這個(gè)寫一個(gè)DialogImpl就可以了。