编写基于IE的内核的浏览器应用程序主要是使用WebBroswer控件来实现的,MFC里面的有一个视图类CHtmlView封装了WebBroswer控件的功能,也就是说最简单的办法是用AppWizard生成一个MDI的应用程序框架,MDI的视图类从CHtmlView派生,然后给工具条加上几个按钮,如“前进”“后退”“停止”“刷新”“主页”等,分别调用CHtmlView的几个成员函数,GoForward(),GoBack(),Refresh(),Stop(),GoHome(),另外再做一个编辑框或者组合框,把用户输入的URL作为参数,调用Navigate2(),完成以上步骤以后,也就完成了一个最简单的基于IE内核的多线程浏览器,如果想要做成Tencent Explorer那种样子,完全是界面设计的问题,它自己派生了一个视图类,在视图类中加入了Property Sheet或是用Tab Control来切换不同的视图,具体怎么实现,我这里有好些例子,需要的话我可以发给你 [email protected]

解决方案 »

  1.   

    在IE工具条上加按钮已经有很多讨论了,是不难实现的,但是想把IE改成Tencent Explorer那样是不可能的
      

  2.   

    多谢bensilver兄。还想在请教一步:tencent explorer的“谁与我同在”和线上留言是如何实现的?
      

  3.   

    用appwizard生成时加入activex支持,在视类OnCreate种将webbrowser实力化,即可按bensilver兄所说,在登陆时向服务器端注册,在返回即可实现,用asp就行但速度慢。
      

  4.   

    谁与我同在当然是通过记录在服务器上实现的了。
    那家伙必然在他的浏览器中含有socket类。
      

  5.   

    谁能帮忙用netxray等追踪分析一下,我装了2000server,netxray等好多工具都不能用了。to gameboy999: 当然了,这些信息肯定在服务器上。我想知道的是他可能的数据库模式和
                   信息传送模式,包括服务器端和本地端。讨论猜测一下:)。
      

  6.   

       MDI视继承CHtmlView,利用IHTML接口(IHTMLWindow,IHTMLDocument,IHTMLElement,IHTMLBodyELement)处理DHTML文档,利用Shdocvw.dll的
    导出函数或IShellUIHelper接口实现添加收藏夹、整理收藏夹功能,用
    IShellLink,IPersistFile,IUniformResourceLocator实现internet
    快捷方式的创建,用ExecWB函数处理一些命令,这些问题在MSDN上都有说明,
    另外,可去www.codeguru.com上看看IE编程,也可参考www.microsoft.com/mind上的信息。
      

  7.   

    hehe, i just write a demo about it, who want the source?
      

  8.   

    其实直接改IE的Interface也是可以的,但只能增不能减的。只要编写一个小外挂程序就可以了,当然,你所增加的MenuItem、ToolBarItem的实现必须在外挂程序中,其实只要你会Hook就行了。
      

  9.   

    嗯,我看了一些资料,心里已经有数了,谢谢各位。我还想再讨论一下她的数据库设计,怎么存放某一个网站上的和我同在的人的纪录?
    是不是每个人每上一个网站,都要在服务器上注册一下?如果这个网站存在就get相关内容;
    如果不在就加上。当用户退出这个网站时就到服务器修改相关纪录。是这样吗?这样多的用
    户,这样多的网站,要做的数据库操作肯定比oicq多得多,服务器能手得了?
      

  10.   

    我还想再讨论一下她的数据库设计,怎么存放某一个网站上的和我同在的人的纪录?
    是不是每个人每上一个网站,都要在服务器上注册一下?如果这个网站存在就get相关内容;
    如果不在就加上。当用户退出这个网站时就到服务器修改相关纪录。是这样吗?这样多的用
    户,这样多的网站,要做的数据库操作肯定比oicq多得多,服务器能手得了?