IWebBrowser隐藏滚动条

 

刚才在项目里看到一个IWebBrowser2,竟然需要通过MoveWindow的方式把滚动条遮挡,如果要缩小IWebBrowser2控件的显示大小呢?这种方法至少我用不习惯,起码也得从源头解决这样的问题吧!

所以百度之,谷歌之~

我的项目使用的是WTL/ATL,所以用WTL/ATL的方式写了一个隐藏滚动条的实现、勿喷~~~

IWebBrowser2的定义和初始化,我就不用说了,这里直接在NavigateComplete里写的,

 1 /*
 2 * CComPtr<IWebBrowser2> m_spWebBrowser;
 3 */
 4 
 5 
 6 /*
 7 * function: onNavigateComplete
 8 * param1: IDispacth *pDisp(LPDISPATCH)
 9 * param2: VARIANT *URL
10 * SINK_ENTRY(DIID_DWebBrowserEvents2, DISPID_NAVIGATECOMPLETE2, OnNavigateComplete)
11 */
12 if (pDisp == m_spWebBrowser && URL != NULL)
13     {
14         CComQIPtr<IHTMLDocument2> spHTMLDocument;
15         CComPtr<IDispatch> spDispDoc;
16         HRESULT hr = m_spWebBrowser->get_Document(&spDispDoc);
17         if (FAILED(hr) || !spDispDoc)
18         {
19             goto end;
20         }
21         hr = spDispDoc->QueryInterface(&spHTMLDocument);
22         if (FAILED(hr) || !spHTMLDocument)
23         {
24             goto end;
25         }
26         CComQIPtr<IHTMLElement> spElement;
27         CComQIPtr<IHTMLBodyElement> spBodyElement;
28         
29         if(SUCCEEDED(spHTMLDocument->get_body(&spElement)))
30         {
31             if (SUCCEEDED(spElement->QueryInterface(IID_IHTMLBodyElement, (void **)&spBodyElement)))
32             {
33                 spBodyElement->put_scroll(L"no");
34             }
35             CComQIPtr<IHTMLStyle> spHTMLStyle;
36             spElement->get_style(&spHTMLStyle);
37             if (spHTMLStyle != NULL)
38             {
39                 spHTMLStyle->put_overflow(L"hidden");
40                 spHTMLStyle->put_border(L"none");
41                 //spHTMLStyle->Release();
42             }
43             //spElement->Release();
44         }
45     }
46 end:
47     //错误处理

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。