2013-05-16 3 views
0

Если я создаю новый графический интерфейс MFC с помощью VS2010, создайте диалоговое окно, добавьте элемент управления MFC SHELLLIST в диалоговое окно DoModal в диалоговом окне, MFC SHELLLIST будет заполнен различными объектами высокого уровня которые затем могут быть пройдены.MFC SHELLLIST не окрашивает

Но у меня есть старый графический интерфейс MFC, который был изначально создан с VS2005, импортированный в VS2010, и когда я делаю то же самое, что и выше, MFC SHELLLIST пуст.

Существует множество действий MainFrm.cpp, которые являются шаблонами для VS2010, которые не были предназначены для VS2005. Вероятно, один или несколько из них отвечают за активацию MFC SHELLLIST.

Кто-нибудь знает, какой из них?

ответ

0

Я только что создал новое диалоговое приложение MFC в VS2012 и добавил элемент управления списком оболочек (отлично работает). Код biolerplate, который намного меньше для диалога, чем для приложения SDI/MDI, содержит следующие Codie в 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 удаляется при закрытии приложения

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

Итак, Я думаю, что по крайней мере вам нужно создать CShellManager и может понадобиться визуальный менеджер для тематики.

0

Проблема заключалась в том, что MFC GUI был первоначально разработан под VS2005, а затем импортирован в VS2010. MFC SHELLLIST не будет работать, пока я не создам совершенно новый проект с VS2010, а затем систематически импортировал источники из исходного проекта. Если бы не WinMerge-источники, такие как MainFrm.cpp и MainFrm.h, чтобы избежать раздражающих функций MFC SHELLLIST.

 Смежные вопросы

  • Нет связанных вопросов^_^