现在的位置: 首页 > 综合 > 正文

判断多Frame网页是否真正加载完毕(CHtmlView) .

2013年09月10日 ⁄ 综合 ⁄ 共 1027字 ⁄ 字号 评论关闭

 

1. 手工重载添加两个虚拟函数:

virtual void DocumentComplete(LPDISPATCH pDisp, VARIANT* URL);

virtual void
NavigateComplete2(LPDISPATCH pDisp, VARIANT* URL);

 

注意:不是以下两个函数

virtual void OnDocumentComplete( VARIANT* URL);

virtual void OnNavigateComplete2( VARIANT* URL);

 

-------------------------------------------------------------------------

2. 声明一个成员变量,并在构造函数中进行初始化:

LPDISPATCH m_lpDisp;//用于判断网页加载是否真正完毕

 

m_lpDisp = NULL;//构造函数中初始化

 

-------------------------------------------------------------------------

3. 这两个函数的具体实现:(参照微软)

//配合NavigateComplete2,判断网页是否真正加载完毕,用于多Frame网页

void CXXXXView::DocumentComplete(LPDISPATCH pDisp,VARIANT* URL)

{

 if(m_lpDisp &&(m_lpDisp == pDisp))//判断网页是否真正加载完毕,用于多Frame网页

 {

//if the LPDISPATCH are same,that means it is the final DocumentComplete

 TRACE("Document is done downloading");

 AfxMessageBox("下载完毕");

 m_lpDisp=NULL;//Reset glpDisp

 }

}

 

//配合DocumentComplete,判断网页是否真正加载完毕,用于多Frame网页

void CXXXXView::NavigateComplete2(LPDISPATCH pDisp,VARIANT* URL)

{

//Check if glpDisp is NULL.If NULL,that means it is

//the top level NavigateComplete2. Save the LPDISPATCH

 if(!m_lpDisp) m_lpDisp=pDisp;

}

抱歉!评论已关闭.