CHtmlView,点击网页中的按钮

来源:互联网 发布:淘宝手机膜好评语100字 编辑:程序博客网 时间:2024/05/22 12:02

有如下HTML,如何用程序触发点击按钮呢?

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <HTML>
  3.  <HEAD>
  4.   <TITLE> New Document </TITLE>
  5.   <META NAME="Generator" CONTENT="EditPlus">
  6.   <META NAME="Author" CONTENT="">
  7.   <META NAME="Keywords" CONTENT="">
  8.   <META NAME="Description" CONTENT="">
  9.  </HEAD>
  10.  <BODY>
  11.   <input type="button" id="btnTest" value="Test" onclick="alert('点击了我');"/>
  12.  </BODY>
  13. </HTML>


首先看JS的写法

  1. var oEvent = document.createEventObject();
  2. document.getElementById("btnTest").fireEvent("onclick", oEvent);


把这段在翻译到C++里面就是:

  1. IHTMLDocument * pDoc = (IHTMLDocument *)GetHtmlDocument();
  2. CComQIPtr<IHTMLDocument3> pDoc3(pDoc);
  3. CComQIPtr<IHTMLDocument4> pDoc4(pDoc);
  4. if( pDoc3 && pDoc4 )
  5. {
  6.     IHTMLElement * pElem = NULL;
  7.     pDoc3->getElementById(_bstr_t(_T("btnTest")), &pElem);
  8.     CComQIPtr<IHTMLElement3> pElem3(pElem);
  9.     if( pElem3 )
  10.     {
  11.         CComPtr<IHTMLEventObj> pEvent;
  12.         pDoc4->createEventObject( NULL, &pEvent);
  13.         if( pEvent )
  14.         {
  15.             _variant_t vEvent(pEvent);
  16.             VARIANT_BOOL vbSuccess = VARIANT_FALSE;
  17.             pElem3->fireEvent( _bstr_t(_T("onclick"))
  18.                 , &vEvent
  19.                 , &vbSuccess
  20.                 );
  21.         }
  22.         
  23.     }
  24. }


很简单吧

原创粉丝点击