WEB开发网
开发学院软件开发Delphi FAQ:如何访问WebBrowser的滚动条 阅读

FAQ:如何访问WebBrowser的滚动条

 2006-02-04 13:55:54 来源:WEB开发网   
核心提示: 问我使用webbrowser控件,但是想用自己的滚动条,FAQ:如何访问WebBrowser的滚动条,但不知如何得到webbrowser中滚动条的长度,怎么办?谢谢!!2004-10-24答 抱歉拖了很久才回复你的问题,下面的代码演示了在VC中如何通过HTML接口来访问浏览器的滚动条, HRESULT hr;
 

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

我使用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 );

Tags:FAQ 如何 访问

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接