WebBrowser控件,c++修改HTML中元素内容的一种方式

标题:WebBrowser控件,c++修改HTML中元素内容的一种方式

Author:  Kagula

Last Update Date: 2014-12-05

关键词:CComPtr IHTMLDocument3

Envrionment:  Win7 64bits VS2010SP1

Step1:

       //如果使用了m_pWebAccount->ShowWindow(SW_HIDE)会导致属主窗口释放。

m_pWebAccount->BringWindowToTop();
CComPtr<IHTMLDocument3> pDoc = GetHTMLDoc(m_pWebAccount);

CString cstrPrice;
cstrPrice.Format(L"%.2f",m_dAccountPayment);
        //TAG_PRICE存放的是元素id属性的值,需要根据这个值查找哪个元素中的内容需要修改!

SetHTMLElemValue(pDoc, TAG_PRICE, cstrPrice);

Step2:

CComPtr<IHTMLDocument3> CcatWelcomeDlg::GetHTMLDoc( CExplorer1 *pWeb )
{
	CComPtr<IHTMLDocument3> pHtmlDoc=NULL;
	CComPtr<IDispatch> spDocDisp;

	HRESULT hr;
	spDocDisp = pWeb->get_Document();

	if(spDocDisp)
	{
		hr = spDocDisp->QueryInterface(IID_IHTMLDocument3, (void**)&pHtmlDoc);
		if (SUCCEEDED(hr) && pHtmlDoc)
		{
			return pHtmlDoc;
		}
	}
	return NULL;
}//end func
void CcatWelcomeDlg::SetHTMLElemValue(CComPtr<IHTMLDocument3> htmlDoc,CString elementID,CString value)
{
	CComPtr<IHTMLElement> element;
	HRESULT hr = htmlDoc->getElementById(_bstr_t(elementID.GetBuffer()), &element);
	if(SUCCEEDED(hr) && element != NULL)
	{
		element->put_innerText(value.GetBuffer());  
	}
}


Step3:

添加所需的头文件,可以参考本Blog其它关于WebBrowser控件的文章。

你可能感兴趣的:(CComPtr,IHTMLDocument3)