Я создал диалоговое окно (cMyDialog). Я планирую дублировать cMyDialog и называть его cMyDialog2. Как я могу наследовать в MFC? Я хочу, чтобы cMyDialog2 наследовал все IDD из cMyDialog1, так что мне не нужно копировать и вставлять код из cMyDialog1 в cMyDialog2. Цель cMyDialog2 - наследовать все функции из cMyDialog1 и добавить в нее некоторые дополнительные функции.Как я могу наследовать диалоговое окно MFC?
Большое спасибо за ваш ответ. Я не совсем уверен в IMPLEMENT_DYNAMIC. Ниже приведен короткий фрагмент моего кода. Можете ли вы просмотреть его и помочь мне, если я неправильно понял макрос?
// cMyDialog1.cpp : implementation file
cMyDialog1::cMyDialog1(void * pMsgData, CWnd* pParent /*=NULL*/): CDialog(cMyDialog1::IDD, pParent)
{ //codes....
}
BOOL cMyDialog1::OnInitDialog()
{
CDialog::OnInitDialog();
...
}
//cMyDialog2.cpp
cMyDialog2::cMyDialog2(void * pMsgData, CWnd* pParent /*=NULL*/)
: CMyDialog1(cMyDialog2::IDD, pParent)
{ //codes....
IMPLEMENT_DYNAMIC(cMyDialog2, cMyDialog1)
}
Я могу наследовать от CMyDialog с помощью метода DECLARE_DYNAMIC
и IMPLEMENT_DYNAMIC
. Большое спасибо за вашу помощь, Адам.
Но мне не удалось получить вторую часть моего вопроса для работы. Я хотел добавить некоторые дополнительные функции в дочернем диалоговом окне CMyDialog1, например, добавить кнопку «Сохранить как», но я не смог это сделать. Это потому, что CMyDialog1 является наследуемым диалогом из CMyDialog и, следовательно, я не могу добавить в новые функции? Как добавить новые функции в наследуемом диалоговом окне?