我刚刚在 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
时删除
// Delete the shell manager created above.
if (pShellManager != NULL)
{
delete pShellManager;
}
所以,我认为至少您需要创建CShellManager
并且可能需要用于主题的视觉管理器。