已经获取IHTMLDocument2,如何用程序向TEXTAREA区写入一串字符?

解决方案 »

  1.   

    举个例子吧,已经获取IHTMLDocument2指针, 现在要自动转向里边的一个链接:
    <a href="shop.cgi?action=jump">跳啊跳啊</a>
      

  2.   

    使用 IHTMLElementCollection , 然后枚举集合中的每一项, 找到你需要的,
    得到IHTMLElement指针,再通过IDispatch得到相应的元素的指针 IHTMLElementCollection* pElemColl; //获取Web元素集合
    hr = m_pHtmlDoc->get_all(&pElemColl);
    CHECKVALID(hr, FALSE); long nElemCount = 0;

    pElemColl->get_length(&nElemCount); for(int i = 0; i < nElemCount; i++)
    {
    VARIANT varIndex;

    varIndex.vt = VT_I4;
    varIndex.intVal = i; IDispatch* pDispTmp; hr = pElemColl->item(varIndex, varIndex, &pDispTmp);
    CHECKVALID(hr, FALSE); IHTMLElement* pElemTmp;
    hr = pDispTmp->QueryInterface(IID_IHTMLElement, (void**) &pElemTmp);
    CHECKVALID(hr, FALSE); BSTR bstrElemId; hr = pElemTmp->get_id(&bstrElemId);
    CHECKVALID(hr, FALSE); //对比Web元素ID,根据需要也可以对比tagName,就看自己的需求了,找到元素后,再做相应的操作,如果需要写入文字可以用 IHTMLElement::put_innerText,如果需要得到链接可以使用 IHTMLLinkElement::get_href , 得到链接后就用 CWebBrowser::Navigate 重定向你的浏览器。
    CString strElemId(bstrElemId);
    if(strElemId.CompareNoCase("MYLIST") == 0)
    {
    hr = pElemTmp->QueryInterface(IID_IHTMLTable, (void**) &m_pHtmlTable);
    CHECKVALID(hr, FALSE);
    } pDispTmp->Release();
    }