加载中…
个人资料
玄雨清风
玄雨清风
  • 博客等级:
  • 博客积分:0
  • 博客访问:2,889
  • 关注人气:36
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

WebBrowser控件中设置页面的缩放

(2012-09-14 21:53:16)
标签:

it

分类: VB编程笔记

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

 

http://p.blog.csdn.net/images/p_blog_csdn_net/WinGeek/EntryImages/20090514/IEZoom.JPG

 

取得缩放比例的范围:

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

‘----------------------------------

 

Option Explicit

Private Const OLECMDID_OPTICAL_GETZOOMRANGE = 64

Private Const OLECMDID_OPTICAL_ZOOM = 63

Private Const OLECMDEXECOPT_DODEFAULT = 0

Private Const OLECMDEXECOPT_DONTPROMPTUSER As Long = 2


Private Sub Command1_Click()

    WB.Navigate "www.baidu.com"

End Sub


Private Sub Command2_Click()

    WB.ExecWB OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, CLng(Text1.Text), vbNullString

End Sub

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有