2

ExecWB() を使用して、次のように WebBrowser コントロールをズームイン/ズームアウトしています。

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

これは、OS dpi が 100% (96 dpi) の場合に問題なく動作します。ただし、OS dpi 150% (144 dpi) では、ズーム ファクターを 100 に設定すると、ブラウザーの Web ページがはるかに小さく見えます (OS dpi 100% の場合とまったく同じレイアウトになると予想していました)。

すると、古いIE8 ドキュメントを見つけました。

このドキュメントでは、 をブラウザのOLECMDID_OPTICAL_ZOOM設定といいます( )ZOOM FACTORZOOM FACTOR = System DPI / Layout DPI

しかし、私はの意味を理解することはできませんLayout DPI。これが Web ページが小さくなる根本的な原因ですか?

4

1 に答える 1

4

この MSDN ドキュメントDOCHOSTUIFLAG_DPI_AWAREには、Web コントロールの高 DPI 動作を制御するフラグがあると記載されています。

初期化中にフラグが設定されると、Web コントロールは IE8 高 DPI 動作を使用します。それ以外の場合は、デフォルトで IE7 高 DPI 動作が使用されます。

IE8 の高 DPI 動作では、パラメータのズーム係数は、IE のズーム UI に表示されるものと同じように、Web ページのスケーリング パーセンテージを正確に意味します。

ただし、IE7 の高 DPI 動作では、もう少し複雑です。私の実験結果によると、

実際の倍率 = ズーム倍率 / システム dpi(%)

たとえば、システムが 120dpi(125%) の場合、ズーム係数を 125 に設定すると、Web ページが 1.0 倍にスケーリングされます。

ただし、まだ説明できないことがあります。システム 120dpi (125%) では、ズーム ファクターを 100 に設定すると、Web ページのスケーリングが 80% になると予想していました。単語が元の 80% であることがわかりました。サイズですが、写真はまだ 100% です。おそらくIE7のズームのバグです。

于 2013-04-10T08:12:36.197 に答える