1。控件和视有什么区别,例如CTreeView与CTreeCtrl,CListView与CListCtrl,CEditView与CEdit?
2。 MFC工具箱中的控件与ActiveX控件(OCX)有什么区别?
3。 如何在工具箱中加入自己的控件,注意不是加ActiveX控件,是自己画资源,然后加入消息等机制及源码的,例如自己对CTreeCtrl的扩展(包括资源的扩展)

解决方案 »

  1.   

    1.视需要你做的工作很多,Ctrl就少了.
    2.子集
    3.只要你写的控件注册后就可以在工具箱中找到.
      

  2.   

    控件是Windows提供的资源,所谓视、视图、View是编程中的一种类包装,CTreeView包装了TreeCtrl,所以可以通过GetTreeCtrl()得到CTreeCtrl,而CTreeCtrl则是对数控件的基本包装,CTreeView又包装了CDocument的操作内容。一般MFC里的VIew类主要包装了文件操作、打印御览等功能。
      

  3.   

    觉得 Mackz(在相互) 说的有点道理了,能不能说说在哪里有相干论述(例如哪本书),另外,麻烦再回答一下问题2和3
    看来很多人在这个问题上都认识模糊
      

  4.   

    ActiveX控件编译后不就是.OCX文件吗?消息机制:
    1、定义,即声明
    2、在message_map中加入消息映射
    3、写函数体实现之
      

  5.   

    2. 工具箱上的控件是VC包装过的(MFC)公共控件,一般Windows都是自己带的,只是版本有不同,一般在USER32.DLL或者COMCTL32.DLL里实现;ActiveX控件是别人(包括MS)提供的控件,需要专门的文件实现,需要注册,而且可能有分发使用权限的限制。
      

  6.   

    1,首先视和控件在概念上有不同中,视是对应一个完整的窗口,它主要是为了将文档中的内容显示出来。而控件虽然也可以叫个一个窗口,但通常是另一个窗口的一部分,而且它所要做的也只是该窗口的输入输出的一部分。那么CTreeView与CTreeCtrl有什么区别呢?如果我们在CFromView里加上一个CTreeCtrl然后简单的加几句代码使它可以自动的随着窗体放大缩小,你可以现在你自己就实现了CTreeView.所以CCtrlView其实是一个视与一个控件携手合作的结果。它出现的原因也就是使我们在利用文档/视图模式时比较方便。