网页高亮查找还有一种方法,就是调用内核的接口IHTMLTxtRange的方法
要获取到接口 IHTMLTxtRange,需要调用接口IHTMLBodyElement的方法 createTextRange。可采用如下过程:
1.采用IHTMLDocument2接口的get_body方法获取到IHTMLElement接口
2.采用IHTMLElement接口QueryInterface获取到接口IHTMLBodyElement;
3.采用IHTMLBodyElement的方法createTextRange,获取到IHTMLTxtRange
获取到IHTMLTxtRange,就可以查找了,调用findText方法,如果要对查找到的元素高亮的话,需要采用IHTMLTxtRange的方法pasteHTML
附上代码
void CSearchText::SearchText(IHTMLDocument2* pDoc2,SEARCH_INFO1& _info)
{
CComPtr<IHTMLElement> lpBodyElm;
CComPtr<IHTMLBodyElement> lpBody;
HRESULT hr = pDoc2->get_body(&lpBodyElm);
if (FAILED(hr))
{
return;
}
hr = lpBodyElm->QueryInterface(IID_IHTMLBodyElement,(void**)&lpBody);
if (FAILED(hr))
{
return;
}
hr = lpBody->createTextRa