1回顶部 IE WebControl控件提供了显示HTML的功能,但是只能够显示URL或者是文件。很多朋友都询问关于显示内存中HTML内容的方法,前几天我在网上找到一段代码,我在这里进行一些讲解。 思路: 实现方法: 从CHTMLView派生新类CMoreHtmlView。 显示空的HTML文件,可以直接利用Navigate2方法,你可以指定一个默认的HTML文件,不过WebControl还可以显示定义在资源中的内容,根据Res Protocol的定义,显示使用资源中的数据时用下面的表示方法: 2回顶部 修改Body标记内InnerHTML属性。 实例代码 BOOL CMoreHtmlView::PutBodyContent(LPSTR lpstrContent) { //store body content if( lpstrContent) m_lpstrBodyContent=lpstrContent; //check if HtmlDocument initialized if( m_pHtmlDoc2) //m_pHtmlDoc2 指向接口 IID_IHTMLDocument2 { HRESULT hr = S_OK; IHTMLElement *pBodyElement; //get body element hr=m_pHtmlDoc2->get_body( &pBodyElement); //得到Body标记 //put content to body element _bstr_t pbBody( m_lpstrBodyContent); hr=pBodyElement->put_innerHTML( pbBody); //设置HTML标记内内容 if( hr==S_FALSE) return FALSE; else return TRUE; } else return FALSE; } 3回顶部 如何得到IHTMLDocument2 void CMoreHtmlView::OnDocumentComplete(LPCTSTR lpszURL) { // show html on first loading of document if(m_bMemoryMode) { LPDISPATCH lpDispatch; lpDispatch=GetHtmlDocument(); ASSERT(lpDispatch); //get html document from IDispatch HRESULT hr=lpDispatch->QueryInterface(IID_IHTMLDocument2, (void**)&m_pHtmlDoc2); //此行实现功能 if( SUCCEEDED(hr)) ShowMemoryHtml(); } CHtmlView::OnDocumentComplete(lpszURL); } 示范代码的阅读: 上面提到的三点是基本的方法,但是要阅读我找到的这份代码需要做一点特别的说明。关于IHTMLDocument2的获得是在文件装入结束后才查询此接口。 |
闂備浇銆€閸嬫捇鏌熼婊冾暭妞ゃ儲鍨块弻鐔衡偓娑櫭慨鍥р攽椤曞棙瀚�闂備礁鎼悮顐﹀磿閸愯鑰块柛娑欐綑缂佲晠鏌熼婊冾暭妞ゃ儻鎷�>>
正在阅读:显示内存中的HTML内容显示内存中的HTML内容
2004-04-05 14:41
出处:VChelp
责任编辑:sdq