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

请问下webBrowser具体使用步骤

2012-03-07 
请教下webBrowser具体使用步骤?从载入到使用,详细步骤说下,谢谢。我在网上看到他的使用方法是这样的ClassWi

请教下webBrowser具体使用步骤?
从载入到使用,详细步骤说下,谢谢。我在网上看到他的使用方法是这样的
ClassWizard方式:
1.创建包装类:View->ClassWizard->Add Class->Form a Type Library->C:winntsystem32shdocvw.dll->只选择IWebBrowserApp类->OK->OK
2.声明一个类变量:IWebBrowserApp m_internetexplorer;,并包含刚才的头文件(xxx.h)
3.在类的构造函数中调用COleDispathDrive::CreateDispatch()函数,加载服务器,如下代码:
  m_internetexplorer.CreateDispatch("InternetExplorer.Application.1");
4.在类的析构函数中调用COleDispathDrive::ReleaseDispatch()函数,加载服务器,如下代码:
  m_internetexplorer.CreateDispatch();
5.在程序中指定URL地址后进行打开WEB页,如下代码:
  VARIANT vInfo;
  vInfo.vt=VT_EMPTY;
  m_internetexplorer.Navigate("地址",&vInfo,&vInfo,&vInfo,&vInfo);
  m_internetexploret.SetVisible(TRUE);
备注:还可以使用插入控件的方式来控制IE的,只需要几步就可以了,如下:
1.在VC中插入WebBrowser控件,并产生相应的包装类
2.声明一个类变量,可用ClassWizard的变量映射来进行。
3.在程序中指定URL地址后进行打开WEB页,如下代码:
  VARIANT vInfo;
  vInfo.vt=VT_EMPTY;
  m_internetexplorer.Navigate("地址",&vInfo,&vInfo,&vInfo,&vInfo);
  m_internetexploret.SetVisible(TRUE);
#import方式:
1.使用import导入类,在你的类的头文件加入以下代码:
  #import "c:winntsystem32shdocvw.dll" rename ("tagREADYSTATE","tagIEREADYSTATE")
  using namespace SHDocvw;
2.声明一个类变量:IWebBrowserAppPtr m_internetexplorer;
3.在类的构造函数中调用COleDispathDrive::CreateDispatch()函数,加载服务器,如下代码:
  m_internetexplorer->CreateInstance("InternetExplorer.Application.1");
4.在程序中指定URL地址后进行打开WEB页,如下代码:
  VARIANT vInfo;
  vInfo.vt=VT_EMPTY;
  m_internetexplorer->Navigate("地址",&vInfo,&vInfo,&vInfo,&vInfo);
  m_internetexploret->PutVisible(TRUE);



我参照1方法用了下,编译后发现存在这样的错误
f:\work\test\testdlg\shdocvw.h(5) : error C2011: 'IWebBrowserApp' : 'struct' type redefinition

谁能和我说下是什么原因?(我把#include "shdocvw.h"放到了StdAfx.h文件的#endif前面。另外,我把他写的m_internetexplorer.CreateDispatch();改成了m_internetexplorer.ReleaseDispatch();不知道是不是作者写错了)

这是一个基于对话框的程序.

[解决办法]
在要添加WEB BROWER控件的界面上右键,插入ACTIVEX控件,选择microsoft Web Browser,界面上就会出现web browser控件了。

使用:
m_ie.ModifyStyle(WS_BORDER, 0);//去掉边框
m_ie.ModifyStyleEx(WS_EX_CLIENTEDGE,0,0);
m_ie.Navigate(strUrl,NULL,NULL,NULL,NULL);
[解决办法]
使用CHtmlCtrl
http://www.vckbase.com/document/journal/vckbase6/winview/dialog/0604001.txt

用法是
CreateFromStatic(UINT nID, CWnd* pParent)这里输入静态文本框的ID和父窗口指针

其它使用跟CHtmlView一样

热点排行