FAQ:如何访问WebBrowser的滚动条

王朝delphi·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

问========================================

我使用webbrowser控件,但是想用自己的滚动条,但不知如何得到webbrowser中滚动条的长度,怎么办?谢谢!!

2004-10-24

答========================================

抱歉拖了很久才回复你的问题。

WebBrowser的滚动条不是一般的Windows滚动条,用GetScrollPos或GetScrollInfo等API是不能访问的。下面的代码演示了在VC中如何通过HTML接口来访问浏览器的滚动条。

HRESULT hr;

IDispatch *pDisp = GetHtmlDocument();

ASSERT( pDisp ); //if NULL, we failed

// 获得Html文档指针

IHTMLDocument2 *pDocument = NULL;

hr = pDisp->QueryInterface( IID_IHTMLDocument2, (void**)&pDocument );

ASSERT( SUCCEEDED( hr ) );

ASSERT( pDocument );

IHTMLElement *pBody = NULL;

hr = pDocument->get_body( &pBody );

ASSERT( SUCCEEDED( hr ) );

ASSERT( pBody );

// 从body获得IHTMLElement2接口指针,用以访问滚动条

IHTMLElement2 *pElement = NULL;

hr = pBody->QueryInterface(IID_IHTMLElement2,(void**)&pElement);

ASSERT(SUCCEEDED(hr));

ASSERT( pElement );

// 向下滚动100个像素

pElement->put_scrollTop( 100 );

// 获得滚动条高度

long scroll_height;

pElement->get_scrollHeight( &scroll_height );

// 获得滚动条宽度

long scroll_height;

pElement->get_scrollWidth( &scroll_width );

// 获得滚动条位置,从顶端开始

long scroll_top;

pElement->get_scrollTop( &scroll_top );

引用地址:FAQ:如何访问WebBrowser的滚动条

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航