1. 建立一个对话窗形式的MFC应用程序,注意在导航的第2页上,一定要选择ActiveX Controls。这也是默认的选择。 2. 向工程中添加 Microsoft Web 浏览器的ActiveX控件。 执行菜单 Project\Add To Project\Components And Controls... 选择Registered ActiveX Controls目录,找到Microsoft Web 浏览器,并Insert。这样MFC会给你产生一个IWebBrowser2的包装类CWebBrowser2。 3. 在对话窗资源编辑器中,把工具条上的IE控件放到你的对话窗中。启动ClassWizard,映射这个IE控件为CWebBrowser2的一个对象(在演示程序中的对象名称是m_ie) 以上一段,来自:http://www.vckbase.com/index.php/wv/809%E7%9C%8B%E8%BF%99%E4%B8%AA1.什么是activex包装类,有没有详细的文章,连接,让我学习,参考一下。
2. 既然IWebBrowser2是一个接口,那么在mfc中使用它的时候,添加了一个activex控件,然后用类向导生成一个包装类,为什么要如此使用?
我以前接触的 com,是: 使用接口,createinstacne,然后调用成员方法,而不是采用什么包装类的法子。

解决方案 »

  1.   

    包装类就是一个类的方式,它会对控件来进行初始化调用等,你就像使用其他类一样,通过它的对象来调用它的方法从而来对webbrowser控件进行操作等
      

  2.   


    你的意思是说:包装类的方式是直接使用派生类对象嘛?
     com这个东西 是有接口+派生类(即实现)两部分构成,使用的时候,是把接口暴露给用户。
    主贴中讨论的问题和你回答的,那么这个包装类显然不能是 接口,因为接口不可能产生对象的,有纯虚函数!!!只有一种解释了, 包装类是特殊的“ 实现类”。如果其是“实现类”,似乎又与"不允许暴露实现给用户“违背!!!如果是对”实现类“的特殊处理的话, 那么我们是否可以对其重新命名?或者,我在这个包装类基础上,进行修改代码什么的?
    2. 搞出一个包装类来,增加了程序员要学的东西,  有介绍包装类的文章嘛。
      

  3.   


    up up  又要沉了
      

  4.   

    控件的包装类是编译器生成的,实际上就是对接口的封装,控件的创建、方法调用、参数转换、返回值转换都封装成了容易使用的方式,比如某个接口方法需要BSTR参数,MFC生成的封装类会使用你更熟悉的LPCTSTR类型,ATL生成的封装类会使用_bstr_t类型。当然具体生成方式可以用import的参数来改变。总之,对接口的使用改变成对封装类的操作,你只需知道你最终操作的还是接口。包装类是没有文档的,要查看文档还得去查找接口的帮助。