关于 IHTMLElement 的 get_tagName的问题。

sgrwetrwertwetrwetrw 2006-07-13 12:06:19
我在MFC中用Microsoft Web浏览器加载了网易的网页。我用下面的代码遍历所有的元素,我想用IHTMLElement 的 get_tagName 取值以后用 MessageBox 把取到值显示出来。但是弹出来的提示框里面全是乱码。请问怎样才能用 MessageBox 把取到值显示出来,比如显示 “input”

IHTMLElement * pElem = NULL;
//LPDISPATCH pDispatch;
IDispatch * pDispatch=NULL;
IHTMLDocument2 * pDoc=NULL;
IHTMLElementCollection * pAllElem = NULL;
VARIANT name;
BSTR tag; //for Element's tagName
// long p; //for IHTMLElementCollection's item number
pDispatch=m_ie.GetDocument();
ASSERT(pDispatch);
HRESULT hr=pDispatch->QueryInterface(IID_IHTMLDocument2,(void**)&pDoc);
pDoc->get_all(&pAllElem);
ASSERT(pAllElem);
if(pAllElem!=NULL)
{
//AfxMessageBox("gethere1");
for(int i=0;i<100;i++)//遍历所有元素
{
name.lVal = i;
pAllElem->item(name,name,(IDispatch**)&pElem);//获取元素对象指针
ASSERT(pElem);///////////////////////运行出错!!!!!!!!!!!!!
pElem->get_tagName(&tag);//获取tagName
CString ss(tag); //转化成CString

AfxMessageBox(ss); //在对话框中显示tagName
::SysFreeString(tag);
}
}
...全文
486 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bestbear 2006-07-13
  • 打赏
  • 举报
回复
这个俺也不晓得了:(
  • 打赏
  • 举报
回复
我想用IHTMLElement 的 get_innerText 取值以后用 MessageBox 把登录按钮上的登录两个字显示出来。
但是找了半天都找不到。请问要怎样才能找到<input type="submit" value="登录" />这个按钮并点击它?

for(int i=0;i<100;i++)//遍历所有元素
{
name.lVal = i;
//objAllElement->item(name,name,(IDispatch**)&pElem);//获取元素对象指针
IDispatch * pDispatch=NULL;
objAllElement->item(name,name,&pDispatch);
IHTMLElement* spElement;
pDispatch->QueryInterface(IID_IHTMLElement, (void**)&spElement);

BSTR tag;
spElement->get_innerText(&tag);
CString ss(tag);
if(ss=="登录")
AfxMessageBox(ss);
//spElement->click();



}
bestbear 2006-07-13
  • 打赏
  • 举报
回复
pAllElem->item(name,name,(IDispatch**)&pElem);//获取元素对象指针

改为:
IDispatch * pDispatch=NULL;
pAllElem->item(name,name,&pDispatch);

然后加上下面这段,根据IDispatch请求IHTMLElement指针,再根据请求到指针去get_tagName.
而不是像你那样,用item接口返回的IDispatch指针。
IHTMLElement* spElement;
pDispatch->QueryInterface(IID_IHTMLElement, (void**)&spElement);

BSTR tag;
spElement->get_tagName(&tag);
CString ss(tag);
lion_wing 2006-07-13
  • 打赏
  • 举报
回复
BSTR tag;-->CComBSTR tag;

3,056

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧