CHtmlView中具有高dpi(150%)的网页显示不正确

时间:2017-08-30 08:51:42

标签: html c++ css asp.net mfc

问题

我有几天的问题,并没有找到其他人提到它..

问题在于,当我将系统dpi缩放设置为150%或更高时,我在CHtmlView中打开的某些网页会搞砸,而使用IE或Chrome不会导致同样的问题。< / p>

上下文

似乎在CHtmlView中字体变得比它需要的更大。我发现如果我的程序设置了“高DPI感知”属性,就会发生这种情况。但我不能把它关掉,因为网页会模糊不清。 奇怪的是,当我在CHtmlView中测试msdn或google分页时,它们既没有引起问题也没有缩放150%。它们只显示为100%。

不确定我是否应该对我的程序或网页执行某些操作。需要在我的程序中显示的网页也来自我的公司,所以如果我知道在网页中设置什么,我就可以处理它。

谢谢:)

修改 因为我遇到问题的网站是私人网站,所以我使用另一个页面来解释这种情况。

Webpage in HtmlView,似乎只有字体变大。

Webpage in IE

1 个答案:

答案 0 :(得分:1)

我在这里,因为我遇到了同样的问题。

您可以创建一个新的VS2017 MFC项目,从CHtmlView派生一个视图,您将在构造的代码中找到它

void CMFCApplication4View::OnInitialUpdate()
{
    CHtmlView::OnInitialUpdate();
    Navigate2(_T("http://www.msdn.microsoft.com/visualc/"),nullptr, nullptr);
}

(请注意,我必须删除两个尾随nullptr参数才能进行编译)

我的应用程序清单将应用程序识别为“高DPI感知”,并且我有200%(192dpi)缩放的监视器。

加载的网页很小(未缩放)。

zett42的答案(2017年8月31日14:39)是正确的。使用

添加指示的注册表项
Computer\HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION

MFCApplication4.exe=11001  [your application name here].

重新启动应用程序,嘿,正确缩放所有内容。

不知道为什么我不能赞zett42。