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

 

如果你的程序中使用WebBrowser控件并且希望有和IE 一样的页面缩放功能(如下图),可以通过向IWebBrowser2 发送 OLECMDID_OPTICAL_GETZOOMRANGEOLECMDID_OPTICAL_ZOOM 命令来实现。 示例代码如下:

 

IE 缩放

 

取得缩放比例的范围:

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 优化了缩放的性能以及加入了一些智能的页面元素调整,使缩放效果更加平滑。

 

 

 >> 原创文章的版权属于作者,转载请注明出处(http://blog.csdn.net/WinGeek/), 谢谢。 <<

 

 

 

 

 

posted @ 2009-05-14 05:43  ajuanabc  阅读(561)  评论(1编辑  收藏  举报