我使用ExecWB()放大/缩小了WebBrowser控件,如下所示:
m_lpBrowser->ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, &(CComVariant)zoomFactor, NULL);当我的OS dpi是100% (96 dpi)时,这就很好了。然而,在OS 150% (144 dpi)下,将缩放因子设置为100会使浏览器中的网页看起来要小得多。
然后我发现了一个旧的IE8文档。
在本文档中,OLECMDID_OPTICAL_ZOOM被称为设置浏览器的ZOOM FACTOR ( ZOOM FACTOR = System DPI / Layout DPI)。
但我就是搞不懂Layout DPI的意思。这是我网页变小的根本原因吗?
发布于 2013-04-10 08:12:36
此MSDN文档提到,有一个DOCHOSTUIFLAG_DPI_AWARE标志控制网页控件的高新闻部行为。
当在初始化期间设置标志时,web控件将使用IE8 High行为;否则,默认情况下它将使用IE7 High行为。
在IE8高新闻部行为下,参数缩放因子准确地表示网页的缩放百分比,就像您在IE缩放UI中看到的一样。
然而,在IE7的高新闻部行为下,情况要复杂一些。根据我的实验结果
实际缩放因子=缩放因子/系统dpi(%)
例如,在系统120 web ( 125 %)下,设置缩放因子125将导致网页缩放1.0倍。
然而,还有一些事情我无法解释:在系统120 set (125%)下,当我将缩放因子设置为100时,我期望网页的缩放率达到80%。事实证明,单词的大小是原来的80%,但图片仍然是100%。也许它是IE7缩放中的一个bug。
https://stackoverflow.com/questions/15781260
复制相似问题