如何隐藏显示HTML5标记的Web浏览器控件(IE)的滚动条和窗口边框
How to hide scrollbars and window borders for a web browser control (IE) that is displaying HTML5 markup?
我有一个MFC对话框窗口,我在其中添加了一个Web浏览器控件(封装Internet Explorer
引擎。)以下代码的目标是(暂时)从该控件中删除scrollbars和窗口边框(致电IviewObject :: Draw。)
所以我做:
//'m_browser' = is a web browser control of type `CExplorer1`
IDispatch* pHtmlDoc = m_browser.get_Document();
CComPtr<IHTMLDocument2> pHtmlDocument2;
pHtmlDoc->QueryInterface(IID_IHTMLDocument2, (void**)&pHtmlDocument2);
CComPtr<IHTMLElement> pBody;
pHtmlDocument2->get_body(&pBody);
CComPtr<IHTMLStyle> pStyle;
pBody->get_style(&pStyle);
//Remove borders
pStyle->put_borderStyle(CComBSTR("none"));
//Remove scrollbars
pBody->setAttribute(CComBSTR(L"scroll"), CComVariant(L"no"));
如果我将Web控件中显示的HTML定义为:
,则此方法有效<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
但是,如果我将其定义为HTML5:
<!DOCTYPE HTML>
上面的代码无需做任何事情。
有什么想法,我该更改如何使其与HTML5 Markup一起使用?
我正在阅读本文,其中说:
Web浏览器控件 - 默认情况下 - 永久卡在I 7渲染模式下。即使我们现在达到了IE 11和合理的HTML5兼容浏览器,Web浏览器控件始终使用IE 7渲染引擎。这是因为ActiveX控件的原始版本使用了此模式,并且为向后兼容,控件将继续使用此模式。
解决方法是添加
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
在HTML的<head>
中,强迫使用最新的IE渲染引擎,从而使其与HTML5页面"兼容"。
相关文章:
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- 在编译时,C++项目抛出错误 C2228,这是预期的,因为控件在运行时未达到该点
- 如何更改窗体上所有控件的标题?[C++生成器]
- 双击更改 mfc 中列表控件中的行的颜色
- 派生的 wxPanel 控件如何访问其中包含 wxDialog 中的数据?
- 如何从代码本身向 wxwidgets 中的文本控件插入字符?
- 如何在MFC中的静态文本控件上插入图标?
- 我的主窗口在创建时或单击更新区域时是否会收到编辑控件?
- 如何在Qt C++中向自定义控件添加属性?
- C/C++ 检测双击 TVItem 的常用控件
- 如何隐藏显示HTML5标记的Web浏览器控件(IE)的滚动条和窗口边框
- 重用 Web 浏览器控件
- Web浏览器控件仿真问题(FEATURE_browser_emulation)
- 如何在 webkit 浏览器控件中返回指向 JavaScript 的 IDispatch 指针
- 无法使用 CefSharp 嵌入式 Chromium 浏览器控件加载网页
- MFC Web 浏览器控件:模拟 Ctrl+N 需要多少(正常)代码行
- Web浏览器控件中的c++:检测鼠标点击特定按钮
- 在MFC应用程序的IE web浏览器控件中运行userscript
- 如何在不混淆的情况下监视.NET web浏览器控件上的用户操作