描述:
我用WTL做了一个复合文档包容器
open之后,可以看见菜单和工具栏,但是在视图区看不见东西
只有将窗口最大化或最小化或改变窗口大小一次之后才可以看见
为什么会这样?怎么解决?
希望了解复合文档的高手指点一下
解决方案1:
直接用 CAxWindow
很简单
void CWebOfficeView::OnDraw(CDC* pDC)
{
CWebOfficeDoc* pDoc = GetDocument();
// TODO: 在此添加绘制代码
if(m_pSelection==NULL)
{
POSITION m_Pos=pDoc->GetStartPosition();
m_pSelection=(CWebOfficeOleClientItem*)pDoc->GetNextClientItem(m_Pos);
}
if(m_pSelection!=NULL)
{
LPDISPATCH lpDisp;
lpDisp=m_pSelection->GetIDispatch();
_Application_Word m_WordApp;
_Document_Word m_WordDoc;
m_WordDoc.AttachDispatch(lpDisp,TRUE);
m_WordApp=m_WordDoc.GetApplication();
m_WordApp.SetScreenUpdating(FALSE);
CRect m_Rect;
m_pSelection->OnGetItemPosition(m_Rect);
m_pSelection->Draw(pDC,m_Rect);
m_WordApp.SetScreenUpdating(TRUE);
m_WordDoc.ReleaseDispatch();
m_WordApp.ReleaseDispatch();
}
}