HTML 字体大小在嵌入式浏览器 (MFC) 中不可预测地变化

HTML font size changing unpredictably in embedded browser (MFC)

本文关键字:MFC 不可预测 变化 浏览器 字体 嵌入式 HTML      更新时间:2023-10-16

我的C++/MFC对话框中有一个嵌入式浏览器控件。它显示一个包含一些转换的 HTML 页面。

一切都很好,转换工作等等。

然而!由于我无法理解的原因,每两周左右一次,字体方面就会发生一些事情。有时它太大,有时太小。我去更改HTML的CSS部分以使字体大小更大,它可以工作几周,然后突然变得太大,我不得不再次将数字更改回去。我对IE缩放级别等所做的任何事情似乎都没有影响我的MFC应用程序中的字体大小。

我模糊地怀疑它与网络连接/断开连接有关,但无法重现该问题。

为什么会发生这种情况,我怎样才能防止这种情况发生?

视窗 10,IE 10。

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style>       
        .box {
            display: inline-block;
            border-spacing: 0;
            border-collapse: collapse;
            padding: 0;
            width: 0px;
            height: 380px; 
            transform: rotate(90deg) translate(0%, 0%);
            font-family: Arial;
            font-size: 37px; /* <-- need to keep changing this */
        }
        .line1 {
            color: white;
            width: 1000px;
            text-align: center;
            transform: translate(-35%, 0); 
            display: inline-block;
        }
    </style>
</head>
<body id=CHtmlMirror bgcolor=black>
    <div class="box">
        <div class="line1">My Text</div>
    </div>
</body>
</html>

您可以尝试在IE10中重置css或启用兼容模式。

好的,找到了一个解决方案。

我可以截获CDhtmlDialog的OnDocumentComplete方法,并确保缩放级别始终设置为某个固定值。然后调整CSS以适合该缩放级别,它不会再次跳来跳去

void CMyDialog::OnDocumentComplete(LPDISPATCH pDisp, LPCTSTR szUrl)
{
    CComVariant zoomLevel;
    zoomLevel = 100;
    m_pBrowserApp->ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DODEFAULT, &zoomLevel, NULL);
}