2013-05-16 56 views
0

如果我使用VS2010創建一個新的MFC GUI,創建一個對話框,將MFC SHELLLIST控件添加到對話框中,DoModal在對話框中,MFC SHELLLIST中填充各種高級對象然後可以通過導航。MFC SHELLLIST不繪製

但是我有一個最初使用VS2005創建的舊MFC圖形用戶界面,導入到VS2010中,並且當我的操作與上面完全相同時,MFC外殼列表爲空。

有許多MainFrm.cpp操作是VS2010的樣板文件,不適用於VS2005。可能其中一個或多個負責激活MFC外殼列表。

任何人都知道哪一個?

回答

0

我剛剛在VS2012中創建了一個新的MFC對話框應用程序,並添加了一個shell列表控件(工作正常)。該biolerplate代碼,這是不是一個SDI/MDI應用程序中的對話框少了很多,包含CMyWinApp::Initinstance

// Create the shell manager, in case the dialog contains 
// any shell tree view or shell list view controls. 
CShellManager *pShellManager = new CShellManager; 

// Activate "Windows Native" visual manager for enabling themes in MFC controls 
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows)); 

CShellManager以下CODIE當應用程序關閉

// Delete the shell manager created above. 
if (pShellManager != NULL) 
{ 
    delete pShellManager; 
} 

所以被刪除,我認爲至少你需要創建CShellManager,並可能需要視覺管理器來主題化。

0

問題是MFC GUI最初是在VS2005下開發的,然後導入到VS2010中。除非我使用VS2010創建了一個全新的項目,然後有條不紊地從原始項目中導入源,否則MFC SHELLLIST將不起作用。必須WinMerge來源,如MainFrm.cpp和MainFrm.h,以避免惱人的MFC SHELLLIST功能。