Я создал диалоговое окно (cMyDialog). Я планирую дублировать cMyDialog и назвать его cMyDialog2. Как я могу сделать наследование в MFC? Я хочу, чтобы cMyDialog2 наследовал все IDD от cMyDialog1, чтобы мне не нужно было копировать и вставлять код из cMyDialog1 в cMyDialog2. Целью cMyDialog2 является наследование всех функций от cMyDialog1 и добавление в него некоторых дополнительных функций.
Большое спасибо за ваш ответ. Я не совсем уверен насчет 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 и, следовательно, я не могу добавить новые функции? Как добавить новые функции в унаследованное диалоговое окно?