“缩放因子”在OLECMDID_OPTICAL_ZOOM中的含义是什么?

时间:2013-04-03 07:25:12

标签: zoom webbrowser-control

我正在使用ExecWB()来放大/缩小我的WebBrowser控件,如下所示:

m_lpBrowser->ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, &(CComVariant)zoomFactor, NULL);

当我的操作系统dpi为100%(96 dpi)时,这很好用。但是,在OS dpi 150%(144 dpi)下,将缩放系数设置为100会使浏览器中的网页看起来更小。(我希望获得与OS dpi 100%完全相同的布局)

然后我找到了一个旧IE8 document

在本文档中,OLECMDID_OPTICAL_ZOOM据说是设置浏览器的ZOOM FACTORZOOM FACTOR = System DPI / Layout DPI

但我无法弄明白Layout DPI的含义。这是我获得较小网页的根本原因吗?

1 个答案:

答案 0 :(得分:3)

This MSDN document提到有一个标志DOCHOSTUIFLAG_DPI_AWARE控制网络控件的高DPI行为。

在初始化期间设置标志时,Web控件使用IE8高DPI行为;否则,它默认使用IE7高DPI行为。

在IE8高DPI行为下,参数缩放系数意味着网页的缩放百分比,就像您在IE缩放UI中看到的那样。

然而,在IE7高DPI行为下,它有点复杂。根据我的实验结果,

  

实际比例因子=缩放系数/系统dpi(%)

例如,在系统120dpi(125%)下,设置缩放系数125会导致网页缩放1.0倍。

然而,仍有一些我无法解释的问题:在系统120dpi(125%)下,当我将缩放系数设置为100时,我期望获得80%的网页缩放。事实证明,这些字是80%他们原来的大小,但图片仍然是100%。也许这是IE7缩放中的一个错误。