Treectrl与视图间通信问题
我作了个在MFC中嵌入WORD的程序,视图左面是个TOOLBAR里面放了个treectrl,而word文档的嵌入是通过下面这个函数实现的,CDemo1CntrItem是容器类。
void CDemo1View::EmbedNewItem()
{
BeginWaitCursor();
CDemo1CntrItem* pItem = NULL;
TRY
{
CDemo1Doc* pDoc = GetDocument(); //出错
ASSERT_VALID(pDoc);
pItem = new CDemo1CntrItem(pDoc);
ASSERT_VALID(pItem);
GetClientRect(&pItem->rect);
CLSID clsid;
if(FAILED(::CLSIDFromProgID(L"Word.document",&clsid)))
AfxThrowMemoryException();
if(!pItem->CreateNewItem(clsid))
AfxThrowMemoryException();
ASSERT_VALID(pItem);
pItem->DoVerb(OLEIVERB_SHOW, this);
m_pSelection = pItem;
pDoc->UpdateAllViews(NULL);
LPDISPATCH lpDisp;
lpDisp = pItem->GetIDispatch();
}
CATCH(CException, e)
{
if (pItem != NULL)
{
ASSERT_VALID(pItem);
pItem->Delete();
}
AfxMessageBox(IDP_FAILED_TO_CREATE);
}
END_CATCH
EndWaitCursor();
}
下面是问题:
我想通过treectrl来插入word文档,我的方法是在App里面定义一个CDemo1View的指针pView,然后在treectrl里得到这个指针
CDemo1App *pApp=(CDemo1App *)AfxGetApp(); //得到APP指针
但是在调用嵌入的函数的时候出错了
pApp->pView->EmbedNewItem() //出错拉
跟了一下发现是在函数里CDemo1Doc* pDoc = GetDocument();的地方出错,该怎么解决呢?