Наследование элементов управления из стандартных элементов управления
Как и с любым CWnd- производный класс можно изменить поведение элемента управления путем наследования новый класс из существующего класса элемента управления.
Создать производный класс элемента управления
Создайте производный класс из существующего класса элемента управления и при необходимости переопределите функцию-член Создать таким образом, что она будет реализовывать обязательные аргументы функции Создать базового класса.
Предоставляет функции-члены обработчика сообщений и записи сообщение-сопоставления, чтобы изменить поведение элемента управления в ответ на определенные сообщения windows.См. раздел Сопоставление сообщений с функциями.
Предоставление новых функций-членов, чтобы расширить функциональные возможности элемента управления (необязательно).
Использование производный элемент управления в диалоговом окне требует дополнительного работы.Типы и положение элементов управления в диалоговом окне обычно определяются в ресурсе диалоговое окно-шаблона.Если создать производный класс элемента управления, нельзя определить в шаблоне диалогового окна поскольку компилятор ресурсов не знает ничего о своем производном классе.
Задать пользовательский производный элемент управления в диалоговом окне
Внедрение объект производного класса элемента управления в объявлении пользовательского производного класса диалогового окна.
Переопределить функцию-член OnInitDialog в классе диалогового окна, чтобы вызвать функцию-член SubclassDlgItem для производного элемента управления.
Подклассы SubclassDlgItem «динамически» элемент управления, созданный из шаблона диалогового окна.Если элемент управления динамически subclassed, обработчик в окна обработке некоторых сообщений в пределах своего собственного приложения, а затем передать оставшихся сообщений окна.Дополнительные сведения см. в разделе SubclassDlgItem функции-члена класса CWnd в справочнике по MFC.Следующий пример показывает, как можно написать переопределение OnInitDialog для вызова SubclassDlgItem:
BOOL CSubDialog::OnInitDialog()
{
CDialog::OnInitDialog();
m_wndMyBtn.SubclassDlgItem(IDC_MYBTN, this);
return TRUE;
}
Поскольку производный элемент управления внедрен в классе диалогового окна, он будет создан, когда диалоговое окно создания и оно будет удалено, когда диалоговое окно будет удалено.Сравните этот код в примере в Добавление элементов управления вручную.
См. также
Ссылки
Создание и использование элементов управления