IWebBrowser隐藏滚动条

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

所以百度之,谷歌之~

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

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

 /*
* CComPtr<IWebBrowser2> m_spWebBrowser;
*/ /*
* function: onNavigateComplete
* param1: IDispacth *pDisp(LPDISPATCH)
* param2: VARIANT *URL
* SINK_ENTRY(DIID_DWebBrowserEvents2, DISPID_NAVIGATECOMPLETE2, OnNavigateComplete)
*/
if (pDisp == m_spWebBrowser && URL != NULL)
{
CComQIPtr<IHTMLDocument2> spHTMLDocument;
CComPtr<IDispatch> spDispDoc;
HRESULT hr = m_spWebBrowser->get_Document(&spDispDoc);
if (FAILED(hr) || !spDispDoc)
{
goto end;
}
hr = spDispDoc->QueryInterface(&spHTMLDocument);
if (FAILED(hr) || !spHTMLDocument)
{
goto end;
}
CComQIPtr<IHTMLElement> spElement;
CComQIPtr<IHTMLBodyElement> spBodyElement; if(SUCCEEDED(spHTMLDocument->get_body(&spElement)))
{
if (SUCCEEDED(spElement->QueryInterface(IID_IHTMLBodyElement, (void **)&spBodyElement)))
{
spBodyElement->put_scroll(L"no");
}
CComQIPtr<IHTMLStyle> spHTMLStyle;
spElement->get_style(&spHTMLStyle);
if (spHTMLStyle != NULL)
{
spHTMLStyle->put_overflow(L"hidden");
spHTMLStyle->put_border(L"none");
//spHTMLStyle->Release();
}
//spElement->Release();
}
}
end:
//错误处理
上一篇:SolidPDF-Tools-v10 一款好用的pdf,word 互转工具


下一篇:版本实在是太多,搞不清楚麒麟V10的操作找ubuntul