有如下HTML,如何用程序触发点击按钮呢?
- <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
- <HTML>
- <HEAD>
- <TITLE>NewDocument</TITLE>
- <METANAME="Generator"CONTENT="EditPlus">
- <METANAME="Author"CONTENT="">
- <METANAME="Keywords"CONTENT="">
- <METANAME="Description"CONTENT="">
- </HEAD>
- <BODY>
- <inputtype="button"id="btnTest"value="Test"onclick="alert('点击了我');"/>
- </BODY>
- </HTML>
首先看JS的写法
- varoEvent=document.createEventObject();
- document.getElementById("btnTest").fireEvent("onclick",oEvent);
把这段在翻译到C++里面就是:
- IHTMLDocument*pDoc=(IHTMLDocument*)GetHtmlDocument();
- CComQIPtr<IHTMLDocument3>pDoc3(pDoc);
- CComQIPtr<IHTMLDocument4>pDoc4(pDoc);
- if(pDoc3&&pDoc4)
- {
- IHTMLElement*pElem=NULL;
- pDoc3->getElementById(_bstr_t(_T("btnTest")),&pElem);
- CComQIPtr<IHTMLElement3>pElem3(pElem);
- if(pElem3)
- {
- CComPtr<IHTMLEventObj>pEvent;
- pDoc4->createEventObject(NULL,&pEvent);
- if(pEvent)
- {
- _variant_tvEvent(pEvent);
- VARIANT_BOOLvbSuccess=VARIANT_FALSE;
- pElem3->fireEvent(_bstr_t(_T("onclick"))
- ,&vEvent
- ,&vbSuccess
- );
- }
- }
- }
很简单吧