为什么ATL调用子类“超类”

时间:2011-08-24 09:03:47

标签: visual-c++ atl superclass

有兴趣学习ATL,我开始阅读this tutorial,我对阅读此(also related)感到困惑:

  

如果要扩展预定义窗口类的功能,例如按钮或列表框控件,则可以对其进行超类。

为什么称为 super -classing而不是 sub -classing?

1 个答案:

答案 0 :(得分:2)

超级分类正在编写一个新类,它的行为就像它完全是一个新的控件一样。当您创建CButton的实例

时,继承自CColoredButton的CColoredButton将是超类

当你已经拥有一个控件(可能是在资源上)时,你可以将它子类化。这里图中的“控制”被不同地处理,因此术语子类。

任何类都可以表现为超类或子类。您可以调用某些SubclassXX函数/方法来继承已有的控件。您可以通过调用其CColoredButton方法(此处称为超类)来分配C ++对象(Create),从而在运行时创建控件实例。