Почему ATL называет подклассы "суперклассами" - PullRequest
4 голосов
/ 24 августа 2011

Заинтересовавшись изучением ATL, я начал читать этот учебник , и я запутался при чтении этого (также связанного) :

Если вы хотите расширить возможности предопределенного класса окна, такого как кнопки или элементы управления списком, вы можете переклассифицировать его.

Почему это называется супер -классификация вместо sub -классификация?

1 Ответ

2 голосов
/ 24 августа 2011

Суперклассификация - это написание нового класса, который будет вести себя так, как если бы это был совершенно новый элемент управления. CColoredButton, наследующий от CButton, будет суперклассом, когда вы создаете экземпляр CColoredButton

Если у вас уже есть элемент управления (возможно, для ресурса), вы можете создать его подкласс. Здесь «управление» в изображении обрабатывается по-разному и, следовательно, термин подкласс.

Любой класс может вести себя как суперкласс или подкласс. Вы бы вызвали некоторую функцию / метод SubclassXX для создания подкласса уже существующего элемента управления. Вы должны создать экземпляр элемента управления во время выполнения, выделив объект C ++ (CColoredButton), вызвав его метод Create - здесь термин суперкласс.

...