如何在CDHtmlDialog中加载html文本?

时间:2018-08-05 09:13:15

标签: mfc

在MFC中我们可以在CDHtmlDialog中加载html文本吗?

在CDHtmlDialog中,我们是否只能加载html文件,也可以加载html文本。

在CDHtmlDialog中,我需要加载html文本。 HTML文本是动态的,所以我不想使用文件?

我们可以直接在CDHtmlDialog中加载html文本吗?

2 个答案:

答案 0 :(得分:0)

您可以选择从文件或HTML资源读取。

要动态进行更改,请在html源字符串上创建IStream,然后使用IPersistStreamInit界面动态更改源。 CHtmlEditView已经通过SetDocumentHTML方法做到了这一点。

对于CDHtmlDialog,使用默认的HTML源,使用文件或HTML资源加载它:

<html>
<body id="findme">
    blank
</body>
</html>

并调用SetElementHtml(L"findme", L"Make changes to content...");,但是此方法无法更改整个html源。另请参见SetElementHtml

答案 1 :(得分:0)

您可以使用加载html页面

CComPtr<IHTMLDocument2> pDoc2;
HRESULT hr = GetDHtmlDocument(&pDoc2);
if (SUCCEEDED(hr))
{
    CComQIPtr<IHTMLDocument3> pDoc3 = pDoc2;
    CComBSTR docStr;
    CComPtr<IHTMLElement> pElem;
    if (SUCCEEDED(hr))
    {
        hr = pElem->get_innerHTML(&docStr);
        pElem->put_innerHTML(htmlbuffer);
    }

}