2011-09-19 9 views
1

このhttp://msdn.microsoft.com/en-us/library/cc849094(v=vs.85).aspx#OptInHighDPIによれば、IE7のデフォルトズームではなく、IE8スタイルのズームを使用するように設定できます。 IDocHostUIHandler.GetHostInfoの実装でDOCHOSTUIFLAG_DPI_AWAREを指定します。DOCHOSTUIFLAG_DPI_AWAREを使用してブラウザコントロールでIE8モードのズームを有効にする

IDocHostUIHandlerを実装し、DocumentCompletedイベントハンドラでICustomDoc.SetUIHandlerを呼び出して処理を行うC#アプリケーションの例をいくつか見てきましたが、これらの行に沿って小さなテストアプリケーションを作成しました。私のGetHostInfoの実装が呼び出されますが、IE8ズームはすぐには有効になりません。私が実際に起こったのは、マウスを動かすかキーボードをタッチした後、Windows 7のスクリーンセーバーが消えた後だけです。

これは私がどちらかと思わせる:

  1. DocumentCompletedは、いずれかのSetUIHandlerを使用して
  2. (つまり、私は知らない、適切なイベントがあります)、この特定のフラグを指定するには、右のイベントではありませんブラウザコントロールのイベントハンドラは、(すなわちIOleClientSite方法がここにhttp://weborama.blogspot.com/2004/10/mshtml-hosting-idochostuihandler.htmlに触れた使用)は機能しません

誰もがDOCHOSTUIFLAG_DPI_AWAREを持つ任意の成功した経験を持っていますか?

答えて

0

私はIOleClientSiteのやり方で、ブラウザコントロールでIE8スタイルのズームをトリガしました。ただし、コントロールの125%設定を継承するのではなく、子ウィンドウがまだ100%のズームで開いています。

私たちは(私たちは、とにかくブラウザコントロール用)レジストリ値のカップルを設定した、非コードソリューションに落ち着い

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Zoom] 
"ZoomDisabled"=dword:00000001 
"ResetTextSizeOnStartup"=dword:00000001 

これらの事実と組み合わせを我々が使用していること大きなフォントのWindows機能(120 DPI)は、すべてのブラウザウィンドウとコントロールをデフォルトの125%のズームでロックします。

IE8およびIE7のようなフォントだけでなく、IE8ズームがすべてのHTML要素(写真、スタイルの幅、高さなど)のサイズに影響を及ぼすため、一部のWebアプリケーションを更新する必要があります。