在MFC中我们可以在CDHtmlDialog中加载html文本吗?
在CDHtmlDialog中,我们是否只能加载html文件,也可以加载html文本。
在CDHtmlDialog中,我需要加载html文本。 HTML文本是动态的,所以我不想使用文件?
我们可以直接在CDHtmlDialog中加载html文本吗?
答案 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);
}
}