如果你的程序中使用WebBrowser控件并且希望有和IE 一样的页面缩放功能(如下图),可以通过向IWebBrowser2 发送
OLECMDID_OPTICAL_GETZOOMRANGE,
OLECMDID_OPTICAL_ZOOM 命令来实现。 示例代码如下:
![](https://i-blog.csdnimg.cn/blog_migrate/7858229c00650e3cbcab56343ed30a20.png)
取得缩放比例的范围:
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%,即原始尺寸
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 优化了缩放的性能以及加入了一些智能的页面元素调整,使缩放效果更加平滑。