根据此http://msdn.microsoft.com/en-us/library/cc849094(v=vs.85).aspx#OptInHighDPI,您可以使您的Web浏览器控件使用IE8样式的缩放,而不是默认的IE7缩放。它表示在IDocHostUIHandler.GetHostInfo的实现中指定DOCHOSTUIFLAG_DPI_AWARE。
我已经看到了一些实现IDocHostUIHandler的C#应用程序示例,并在DocumentCompleted事件处理程序中调用ICustomDoc.SetUIHandler来连接,我已经编写了一个小测试应用程序。调用我的GetHostInfo实现,但IE8缩放不会立即生效。我看到它实际发生的唯一一次是在我移动鼠标/触摸键盘后我的Windows 7屏幕保护程序关闭之后。
这让我想到:
有没有人对DOCHOSTUIFLAG_DPI_AWARE有任何成功经验?
答案 0 :(得分:0)
我最终采用了IOleClientSite方式,触发了浏览器控件中IE8风格的缩放。但是,子窗口仍然以100%缩放打开,而不是继承控件的125%设置。
我们确定了一个非代码解决方案(我们,无论如何,对于浏览器控件),它设置了几个注册表值:
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Zoom]
"ZoomDisabled"=dword:00000001
"ResetTextSizeOnStartup"=dword:00000001
这些以及我们使用大字体Windows功能(120 DPI)的事实导致所有浏览器窗口和控件锁定为默认的125%缩放。
某些网络应用程序需要更新,因为IE8缩放会影响所有HTML元素的大小(例如图片,样式宽度和高度),而不仅仅是IE6和7等字体。