Зачем определять эти теги?
См. Ответ Джкопены.
Для чего используются две функции после двоеточия?
См. Ответ Петра.
Есть ли в C # похожие вещи? Для чего это используется?
В C # это может быть реализовано как словарь делегатов.
Она называется «картой сообщений» (вероятно, описанной в одном из подразделов Обработка и отображение справочных сообщений библиотеки MFC ).
Его содержимое обычно создается / редактируется с помощью IDE "Class Wizard" (не редактируется вручную с помощью редактора кода / текста).
Зачем устанавливать функцию деструктора как виртуальную?
В C ++, если класс может быть разделен на подклассы, его деструктор почти всегда должен быть виртуальным (потому что в противном случае, если он не виртуальный, и вы вызываете его, удаляя указатель на суперкласс, деструктор подкласса не будет вызван) .
Когда будет вызываться эта функция?
Это, вероятно, описано здесь: Сериализация ссылок на библиотеки MFC в MFC .
это расширение от родителя?
В соответствии с той ссылкой, которую я только что дал выше, это класс-предок CObject: «MFC предоставляет встроенную поддержку сериализации в классе CObject. Таким образом, все классы, производные от CObject, могут использовать преимущества протокола сериализации CObject».
Кстати, когда вы хотите расширить класс MFC, какой документ вы будете читать?
Справочная документация МФЦ.
Поскольку мы не знаем, какую функцию он имеет, какую функцию мы можем переопределить ...
Обычно вы можете переопределить все, что виртуально, а не приватно. Я думаю, что вы также можете / вместо этого использовать Class Wizard, встроенный в IDE.
CSortHeaderCtrl, очевидно, является сторонним классом, но не классом Microsoft. Возможно, его авторы / поставщики написали какую-то документацию для него, если вы собираетесь его использовать.