首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于将html文档save后,再取节点坐标的有关问题

2012-02-20 
关于将html文档save后,再取节点坐标的问题直接将一个网页的全部节点全部访问一遍,花费的时间比较长。因此想

关于将html文档save后,再取节点坐标的问题
直接将一个网页的全部节点全部访问一遍,花费的时间比较长。因此想到将文档保存下来之后再访问节点,但是保存下来之后,却无法得到坐标。
  代码:

  CoInitialize(NULL);
  IHTMLDocument2 *pDoc = NULL;
   
  CoCreateInstance(CLSID_HTMLDocument, NULL,CLSCTX_INPROC_SERVER, IID_IHTMLDocument2, (LPVOID *) &pDoc);

  if (pDoc)
  {
  IPersistStreamInit *pPersist = NULL;

  pDoc->QueryInterface(IID_IPersistStreamInit,(LPVOID *) &pPersist);

  if (pPersist)
  {
IMarkupServices *pMS = NULL;

pPersist->InitNew();
pPersist->Release();

pDoc->QueryInterface(IID_IMarkupServices,(LPVOID *) &pMS);

if (pMS)
{
IMarkupContainer *pMC = NULL;
IMarkupPointer *pMkStart = NULL;
IMarkupPointer *pMkFinish = NULL;

pMS->CreateMarkupPointer(&pMkStart);
pMS->CreateMarkupPointer(&pMkFinish);

pMS->ParseString(szHTML,0,&pMC,pMkStart,pMkFinish );//此处szhtml为装载了网页源码的字符串;

if (pMC)
{
IHTMLDocument2 *pNewDoc = NULL;

pMC->QueryInterface(IID_IHTMLDocument,(LPVOID *) &pNewDoc);

if (pNewDoc)
{
  IHTMLElement *pBody;
pNewDoc->get_body(&pBody);

  long sh = 0;
  long sw = 0;
  pBody->get_OffsetHight( &sh );
  pBody->get_OffsetWidth( &sw );//???????此处得到的高度和宽度均为0;

  }
}
  }
  }  

  不知道为什么这里取不出来节点的高度和宽度,大侠指点下。。。。

[解决办法]
无UI的IHTMLDocument2是无法访问跟UI相关的属性和方法的,只有在IWebBrowser的环境下它们才有效。
[解决办法]

探讨
无UI的IHTMLDocument2是无法访问跟UI相关的属性和方法的,只有在IWebBrowser的环境下它们才有效。

热点排行