我想得到整个网页正常大小下的长度和高度,不是显示网页的Web brower控件的大小?而且我想知道是否有方法能得到网页显示的位置在web brower空间留白的地方的长度。在网上搜索了很长时间也没找到方法,希望高手们指点一下!100分奉上

解决方案 »

  1.   

    https://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1202156&SiteID=1
      

  2.   

    谢谢楼上,但是我没看懂他说的意思。而且他是使用的.net实现的。我使用的是MFC.
    _iHeight = _oBlankBrowser.Document.Body.ScrollRectangle.Height + _oBrowser.Margin.Vertical
    _iWidth = _oBlankBrowser.Document.Body.ScrollRectangle.Width + _oBrowser.Margin.Horizontal
    他这里的滚动条长度我可以拿到,后面的margin是怎么弄出来的。
    滚动条的长度我这样的到的pElem是我得到的IHTMLElement*
    IHTMLTextContainer *ptextcontainer = NULL;
    hr = pElem->QueryInterface(IID_IHTMLTextContainer, (void**)&ptextcontainer);
    ASSERT( SUCCEEDED(hr) );
    ASSERT( ptextcontainer );
    // 当滚动条显示时,滚动条长度就是整个网页的大小。
    long height, width;
    ptextcontainer->get_scrollHeight( &height );
    ptextcontainer->get_scrollWidth( &width );但是这里的到的滚动条长宽只有当两个滚动条全部显示出来时刚好是网页的大小。但如果滚动条没显示的话就是整个页面的大小。对COM我是刚接触,不了解,望讲解
      

  3.   

    需要自己判断,取clientHeight和scrollHeight中较大的一个。说明:网页没有默认大小,它的宽度是由容器决定的(用户决定),高度是根据宽度动态计算出来的。