2013-05-16 4 views
0

VS2010을 사용하여 새 MFC GUI를 만들면 대화 상자를 만들고 대화 상자에 MFC SHELLLIST 컨트롤을 추가하고 DoModal을 대화 상자에 추가하면 MFC SHELLLIST가 다양한 고급 개체로 채워집니다 그런 다음 탐색 할 수 있습니다.MFC SHELLLIST가 페인트되지 않습니다

하지만 처음에는 VS2005로 가져온 VS2005로 가져온 이전 MFC GUI가 있는데 위에서 정확히 같은 경우 MFC SHELLLIST가 비어 있습니다.

VS2005에 대한 것이 아니었던 VS2010에 대한 상용구 인 많은 MainFrm.cpp 작업이 있습니다. 아마 그들 중 하나 이상이 MFC SHELLLIST를 활성화 할 책임이 있습니다.

아무도 알고 계십니까?

답변

0

방금 ​​VS2012에 새로운 MFC 대화 상자 응용 프로그램을 만들고 쉘 목록 컨트롤을 추가했습니다 (정상적으로 작동 함). SDI/MDI 응용 프로그램에 대한보다 대화에 훨씬 덜입니다 biolerplate 코드, 응용 프로그램이

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

그래서 닫을 때 삭제됩니다 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을 포함, 최소한 CShellManager을 만들어야하고 테마로 시각적 관리자가 필요할 수도 있습니다.

0

문제는 MFC GUI가 원래 VS2005에서 개발 된 다음 VS2010으로 가져온 것입니다. MFC SHELLLIST는 VS2010으로 완전히 새로운 프로젝트를 만든 다음 조직적으로 원래 프로젝트에서 소스를 가져 오기 전까지는 작동하지 않습니다. 성가신 MFC SHELLLIST 기능을 피하기 위해 MainFrm.cpp 및 MainFrm.h와 같은 WinMerge 소스를 사용해야했습니다.