您的位置:首页 > Web前端 > HTML

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

2008-07-27 12:51 357 查看
判断多Frame网页是否真正加载完毕(CHtmlView)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

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;

}

 

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

4. 测试环境:

编程工具: VC6

操作系统: XP SP2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息