[IE编程] WebBrowser控件中设置页面的缩放

如果你的程序中使用WebBrowser控件并且希望有和IE 一样的页面缩放功能(如下图),可以通过向IWebBrowser2 发送 OLECMDID_OPTICAL_GETZOOMRANGEOLECMDID_OPTICAL_ZOOM 命令来实现。 示例代码如下:
[IE编程] WebBrowser控件中设置页面的缩放_第1张图片
取得缩放比例的范围:
CComVariant varRange;
spWebBrowser->ExecWB(OLECMDID_OPTICAL_GETZOOMRANGE, OLECMDEXECOPT_DODEFAULT, NULL, &varRange);
ASSERT(V_VT(&varRange) == VT_I4);
WORD wMinZoom = LOWORD(V_I4(&varRange)); // 最小缩放比例
WORD wMaxZoom = HIWORD(V_I4(&varRange)); // 最大缩放比例
获取当前缩放比例:
CComVariant varZoom;
spWebBrowser->ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DODEFAULT, NULL, &varZoom);
ASSERT(V_VT(&varZoom) == VT_I4);
ULONG ulZoom = V_I4(&varZoom);    // 当前缩放比例, 100 表示100%,即原始尺寸
设置缩放比率:
CComVariant varZoom((int)nZoom);  // nZoom是要设置的缩放比例
spWebBrowser->ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DODEFAULT, &varZoom, NULL);  
注:OLECMDID_OPTICAL_GETZOOMRANGE,OLECMDID_OPTICAL_ZOOM 从IE7 才开始支持,在IE6以及之前版本中,请使用 OLECMDID_GETZOOMRANGE , OLECMDID_ZOOM 。需要注意是的是, IE6以及早期版本只能对字体进行缩放,但是很多网页用CSS固定了字体的大小,所以多数时候缩放效果不理想。  从IE7开始,IE的页面缩放功能被重新设计, 可以对整个页面进行矢量缩放(图片,编辑框等)。 IE8 优化了缩放的性能以及加入了一些智能的页面元素调整,使缩放效果更加平滑。
 
 

本文出自 “IE浏览器研发” 博客,转载请与作者联系!

你可能感兴趣的:(编程,职场,休闲)