MFC SHELLLIST不画画

时间:2013-05-16 21:49:19

标签: mfc windows-shell

如果我使用VS2010创建一个新的MFC GUI,创建一个对话框,将MFC SHELLLIST控件添加到对话框,对话框中的DoModal,MFC SHELLLIST将填充各种高级对象,然后可以导航通过

但是我有一个最初用VS2005创建的旧MFC GUI,导入VS2010,当我和上面完全一样时,MFC SHELLLIST是空的。

有许多MainFrm.cpp动作是VS2010的样板,不适用于VS2005。可能其中一个或多个负责激活MFC SHELLLIST。

有谁知道哪一个?

2 个答案:

答案 0 :(得分:0)

我刚在VS2012中创建了一个新的MFC对话框应用程序,并添加了一个shell列表控件(工作正常)。对于对话而言,生物助记符代码比对于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

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

所以,我认为至少你需要创建CShellManager并且可能需要可视化管理器来进行主题化。

答案 1 :(得分:0)

问题是MFC GUI最初是在VS2005下开发的,然后导入VS2010。在我使用VS2010创建一个全新项目然后从原始项目中有条理地导入源之前,MFC SHELLLIST将无法工作。不得不像MainFrm.cpp和MainFrm.h这样的WinMerge源代码,以避免烦人的MFC SHELLLIST功能。

相关问题