有兴趣学习ATL,我开始阅读this tutorial,我对阅读此(also related)感到困惑:
如果要扩展预定义窗口类的功能,例如按钮或列表框控件,则可以对其进行超类。
为什么称为 super -classing而不是 sub -classing?
答案 0 :(得分:2)
超级分类正在编写一个新类,它的行为就像它完全是一个新的控件一样。当您创建CButton
的实例
CColoredButton
的CColoredButton将是超类
当你已经拥有一个控件(可能是在资源上)时,你可以将它子类化。这里图中的“控制”被不同地处理,因此术语子类。
任何类都可以表现为超类或子类。您可以调用某些SubclassXX
函数/方法来继承已有的控件。您可以通过调用其CColoredButton
方法(此处称为超类)来分配C ++对象(Create
),从而在运行时创建控件实例。