今天是:   | 登录中心 | | 网络导航
logo 来海南旅游咨询 海南旅游 预订海南酒店 自驾租车 海南高尔夫 问路订房就请拔打海南旅游百事通  全天24小时为您守候 设为首页
加入收藏
联系站长
导航页为首页
内容页为首页
当前位置:南国风 >> IT.信息技术 >> vc.net >> 浏览文章

在vc中使用CDHtmlDialog来显示HTML对话框(1)

作者:佚名 日期:2009年05月25日 来源:本站原创 人气:

  在VS7中添加了一种新的对话框类:CDHtmlDialog,顾名思义就是能够显示DHTML内容的对话框,但不同与以前的CHTMLView不同的是添加了对DHTML的支持,能够响应各种DHTML的事件,而且能够方便的得到网页上的各种内容和输入。在这以前要完成这些功能必须通过复杂的COM接口来完成,而现在MS MFC已经为我们做好了这一切。
  在下面我会按照下面的顺序讲解CDHtmlDialog的用法。但本文也只能对DHTML对话框的功能进行部分的讲解,更多更全的说明需要大家自己摸索和查找资料。本文的目的是在于讲解如何得到和设置网页上的各种元素的值,如何处理事件。
  此外在阅读本文前你必须对HTML和DHTML有所了解。

类成员函数介绍

  构造函数

  CDHtmlDialog( );
  CDHtmlDialog(
     LPCTSTR lpszTemplateName,
     LPCTSTR szHtmlResID,
     CWnd *pParentWnd = NULL
  );
  CDHtmlDialog(
     UINT nIDTemplate,
     UINT nHtmlResID = 0,
     CWnd *pParentWnd = NULL
  );

  你可以看到和CDialog不同的就在于第二个参数,表示在对话框创建时是否自动加载HTML,这里必须说明的是HTML必须以资源的形式存放,这个参数指明的是资源的ID或名称。

在vc中使用CDHtmlDialog来显示HTML对话框

  或者你可以利用

  BOOL LoadFromResource(
     LPCTSTR lpszResource
  );
  BOOL LoadFromResource(
     UINT nRes
  );
  将HTML内容在后期进行装载。

  页面浏览

  此外一些函数如:OnNavigateComplete,OnBeforeNavigate,Navigate等用于页面转换的函数,在以前的CHtmlView中就有这里就不再作讲解。

  得到当前URL

  void GetCurrentUrl(
     CString& szUrl
  );

  得到网页中的DHTML元素的指定接口

  HRESULT GetElementInterface(
     LPCTSTR szElementId,
     REFIID riid,
     void** ppvObj
  );

  第一个参数指定,第二个参数指定接口ID,第三个参数返回接口指针。

  得到网页中的DHTML元素的IHTMLElement接口

  HRESULT GetElement(
     LPCTSTR szElementId,
     IHTMLElement **pphtmlElement
  );
  相当于调用 GetElementInterface(szElementId,IHTMLElement,pphtmlElement);

  这个函数非常的重要,因为如果要得到DHTML的内容就必须通过页面上的各个元素的属性来得到,例如:对于Input type=text的属性value就是输入的值,对于p的属性innerText就是段落中的内容。

  函数的第二个参数就是元素的名称。

  函数的第二个参数,是一个指向指针的指针,通过它得到IHTMLElement的接口。函数返回值是HRESULT其值的定义符合COM中对返回值的定义。(如果你不了解,可以简单的检测返回值是否等于S_OK)


email:lifat@yeah.net| QQ:_3000_99**61 T先生
  服务指南 | 著作权与商标声明 | 法律声明 | 服务条款 | 隐私声明 |


南国风网站的版权信息:保留所有权力

不良信息举报中心!
琼ICP备15001822号