rt
解决方案 »
- 如何获取当前登陆的帐号和密码?
- 100分求局域网内怎么读取流媒体,或等价方法。
- 如何清除IE的临时缓存以及Cookies
- CDialog除了属性框加菜单,怎样用代码来加菜单啊
- 不显示删除回复 显示所有回复 显示星级回复 显示得分回复 收藏 求助:VC编译好的程序连接access数据库问题
- 2000下SendMessage(hwnd,WM_SETTEXT,0,"aaa")用在密码框怎么显示设置为空?
- 求MFC完整的课程设计报告
- 怎样获得CPU的ID?
- 高分请教:怎样让MSComm控件正确发送二进制数据
- 一个关于线程、socket和定时器的问题,please help me!
- 关于ID3DXFont.DrawText和窗口最小化的问题
- 如何添加AXTIVEX 控件
DISP_FUNCTION_ID(CXX, "onscroll",DISPID_HTMLWINDOWEVENTS2_ONSCROLL, OnIFrameScroll,VT_EMPTY, VTS_DISPATCH)AfxConnectionAdvise((LPUNKNOWN)pHTMLWnd2,DIID_HTMLWindowEvents2, GetIDispatch(FALSE), FALSE, &m_dwCookie);void OnIFrameScroll(IHTMLEventObj *pEvtObj);没反应啊!!!,截获不到
<HEAD>
<TITLE> New Document </TITLE>
</HEAD> <BODY>
<iframe id="ifmMain" style="width:100%; height:100%" src="2.html">
</iframe>
</BODY>
</HTML>
2.html
<HTML>
<BODY>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
</BODY>
</HTML>
3. vc代码void CTestHtmlViewView::OnDocumentComplete(LPCTSTR lpszURL)
{
static BOOL s_bHooked = FALSE;
if( !s_bHooked )
{
CComQIPtr<IHTMLDocument2> pDoc2(GetHtmlDocument());
if( pDoc2 )
{
CComPtr<IHTMLFramesCollection2> pColl2;
pDoc2->get_frames(&pColl2); if( pColl2 )
{
LONG lCount = 0L;
pColl2->get_length(&lCount); if( lCount > 0 )
{
_variant_t vIndex(0);
_variant_t vOut;
pColl2->item( &vIndex, &vOut); CComQIPtr<IHTMLWindow3> pWnd3(vOut.pdispVal); if( pWnd3 )
{
VARIANT_BOOL vbSuccess = VARIANT_FALSE;
pWnd3->attachEvent( _bstr_t(_T("onscroll"))
, CDOMEventHandler::CreateEventHandler( &CTestHtmlViewView::OnScroll, (LONG_PTR)this)
, &vbSuccess
);
s_bHooked = TRUE;
}
}
}
}
}
}
其中CTestHtmlViewView::OnScroll的定义和代码为static void OnScroll(VARIANT* pVarResult, LONG_PTR lpUserData);void CTestHtmlViewView::OnScroll(VARIANT* pVarResult, LONG_PTR lpUserData)
{
CTestHtmlViewView * pThis = reinterpret_cast<CTestHtmlViewView*>(lpUserData);
::MessageBox( NULL, _T("OnScroll"), NULL, MB_OK);
}
CDOMEventHandler这个类去我的博客里面找
Are you sure??
Did u try my sample with the HTML code list above.Make sure no XHtml Doc-type is presented in the head of your HTML.
NOTE: it is impossible for u to hook the onscroll in XHTML instead of HTML
能不能直接写一个事件的处理函数在CHTMLVIEW类中,用IHTMLWINDOW3::ATTACHEVENT来实现绑定