none
VS2010里的CMFCShellListCtrl和CMFCShellTreeCtrl控件问题 RRS feed

  • 问题

  • 在Tab Control的一个标签下的对话框里,有CMFCShellTreeCtrl,编译无错但运行时报错
    C/C++ code
    Debug Assertion Failed!

    调试时发现是断在 afxshelltreectrl.cpp中的这里
    C/C++ code
    BOOL CMFCShellTreeCtrl::GetRootItems() { ASSERT_VALID(this); ENSURE(afxShellManager != NULL);//断在这儿.. ASSERT_VALID(afxShellManager); LPITEMIDLIST pidl; if (FAILED(SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &pidl))) { return FALSE; } ...... }


    另外的,CMFCShellListCtrl是断在了这儿
    C/C++ code
    void CMFCShellListCtrl::PreSubclassWindow() { CMFCListCtrl::PreSubclassWindow(); _AFX_THREAD_STATE* pThreadState = AfxGetThreadState(); if (pThreadState->m_pWndInit == NULL) { if (!InitList()) { ASSERT(FALSE);//断在这里 } } }


    请问各位大牛们这都是咋回事啊,直接把这俩ctrl放对话框里就没事,放tab ctrl里加载就出毛病,问什么啊
    2010年4月17日 18:22

答案

  • CWinAppEx::InitShellManager没有被调用。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    • 已标记为答案 Nancy Shao 2010年4月26日 10:13
    2010年4月17日 23:17
    版主