我想在一个CHtmlView派生的VIEW里加几个按钮,view初始化时已经加载一个网页LoadFromResource( IDR_WHATS_NEW );
}
然后按每一个按钮就打开不同的网页,
CString str;
str.Format("http://www.sohu.com");
CHtmlView::Navigate(str, 0, NULL,NULL,NULL);
怎么一执行就出错呀。
请大侠给出例子吧。

解决方案 »

  1.   

    1,http://tech.china.com/zh_cn/netschool/programme/c/3936/20000814/217859.htm
      

  2.   

    http://cpc.3322.net/technology/vc122.htm
    用VC++6.0制作简易浏览器   浏览器是我们上网时必须使用的软件,我们常用的浏览器有IE、Netscape等。面对它们,我们往往会感叹如此强大功能的软件是如何编写出来的呢?的确,要编写一个功能完善的浏览器是很不容易的。但是,利用当今的一些面向对象开发工具来编写一个简易的浏览器以实现它的主要功能却十分容易。用VC++,一支烟的功夫就能办到!不信,请跟我来。
      实现原理:
      ActiveX控件可以看作是OLE容器中使用的进程内服务器,但是,只有在支持ActiveX控件的OLE容器中使用它,才能发挥其所有的功能。而VC++ 6.0的MFC创建的OLE容器完全支持ActiveX控件,所以它可以使用控件的属性和方法来操作ActiveX控件,同时又能以事件的形式接收Active事件的通知。
      具体方法:
      1.首先在VC++ 6.0的主窗口中选择菜单“File/New”,新建一个工程,使用“MFC AppWizard(exe)”向导,工程名为“SimpleIE”,然后单击“OK”按钮。
      2.接下来会有6个向导步骤。第一步选择“Single document”(单文档界面)支持,语言选择“中文”,其余按默认值,单击“Next”按钮。
      3.在接下来的4个步骤(即:Step 2 of 6到Step 5 of 6)中,一律保持默认值,直接单击“Next”按钮进入到下一步即可。
      4.在第6步(即:Step 6 of 6)中,请在类列表中选中“CSimpleIEView”类,再从“Base class”下拉列表框中选择“CFormView”,这表示可以在程序界面的窗口中加入控件。最后单击“Finish”按钮,直到系统生成该工程所必需的文件结束,此时,也就完成了该程序的基本框架。
      5.在VC++ 6.0的主窗口左边选择资源选项卡,双击其中的Dialog文件夹,再双击其下的IDD_SimpleIE_FORM项,则此对话框出现在对话框编辑器中。删除对话框上的静态文本,然后在对话框上单击鼠标右键,从弹出的快捷菜单中选择“Insert ActiveX Control”命令,在弹出的“Select ActiveX Control”对话框中,从列表框中选择“Microsoft Web浏览器”控件,单击“OK”按钮,将该控件加入到对话框中。进入ClassWizard,选择Member Variable选项卡,然后选择Class Name列表框中的CSimpleIEView类,在ID列表中找到ID_EXPLORER1,为它增加一个成员变量“m_SimpleIE”(注意:系统提示在增加控件后,保存工程中的所有文件)。
      6.再在对话框上加入三个控件,静态文本“地址:”、EDIT_BOX控件(为其添加成员变量m_URL)、一个按钮(在其属性对话框中,将Caption属性设为“链接(&L)”,选择“Styles”选项卡,将“Default button”复选框选中)。此时的对话框外观如图1所示。
      7.进入ClassWizard,选择Message Maps选项卡,再在Object Ids列表框中选择IDC_BUTTON1,选择Message列表框中的BN_CLICKED。单击“Add Function”按钮,增加一个函数,使用系统的默认函数名“OnButton1”,单击“OK”。点击“Edit Code”按钮,为此函数加入如下代码(注意字母的大小写):
      UpdateData(true);
      m_SimpleIE.Navigate(m_URL,NULL, NULL, NULL, NULL);
      8.保存工程,编译并运行。在编辑框中直接输入网址并回车,你熟悉的网页将出现在你的面前,如图2所示。
      以后,我们还可以在此基础上对它进行改进,使它的功能进一步增强和完善,最终做出具有自我风格的浏览器。
    再贴个地址:
    http://www.vchelp.net/itbookreview/view_paper.asp?paper_id=919
      

  3.   

    这样
    CHtmlView::Navigate(str, 0, NULL,NULL,NULL);
    不行
    最好的到 CHtmlView 的指针调用。
    我建议你把按钮消息映射到CMyHtmlView里调用。void CMyHtmlView::OnGoToMicrosoft()
    {
       CString str;   str.Format("http://home.microsoft.com");
       Navigate2(str, 0, NULL);
    }
      

  4.   

    两位没有看懂我的意思,我是指在这个VIEW里切换页面。这些HTML是我已经做好的,我点击不同的按钮让VIEW里显示我已经做好的不同的HTML页。
      

  5.   

    其实,我是做了一个类似OUTLOOKBAR风格的FRAM,我想点击左边的按钮,然后在右边的VIEW里换不同的(已经做好的)网页。
    在VIEW里我加了一个函数想在按钮按下时根据不需要调用不同的页,如何实现?
    void CContainerView::SwitchHtm(int  iHtm)
    {
    switch(iHtm)
    {
    case 1:
    ????????
    break;
    }
             case  2:
    ......}