嵌入式浏览器(MFC)

时间:2016-07-16 07:39:14

标签: html c++ css windows mfc

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

一切都很好,转换起作​​用了。

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

我有一种模糊的怀疑,认为它与网络连接/断开有关,但无法重现问题。

为什么会发生这种情况,我该如何防止这种情况发生?

Windows 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>

2 个答案:

答案 0 :(得分:0)

您可以尝试重置css或enable compatibility mode in IE10

答案 1 :(得分:0)

好的,找到了解决方案。

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

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