J'ai créé une boîte de dialogue (cMyDialog). J'ai l'intention de dupliquer cMyDialog et de l'appeler cMyDialog2. Comment puis-je faire de l'héritage dans MFC? Je veux que cMyDialog2 hérite de tous les IDD de cMyDialog1 pour que je n'aie pas à copier et coller le code de cMyDialog1 à cMyDialog2. Le but de cMyDialog2 est d'hériter de toutes les fonctions de cMyDialog1 et d'y ajouter des fonctions supplémentaires.Comment puis-je hériter d'une boîte de dialogue MFC?
Merci beaucoup pour votre réponse. Je ne suis pas tout à fait sûr de l'IMPLEMENT_DYNAMIC. Voici un petit extrait de mon code. Pouvez-vous s'il vous plaît l'examiner et m'aider si j'ai mal compris la macro?
// 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)
}
Je suis en mesure d'hériter de CMyDialog via la méthode DECLARE_DYNAMIC
et IMPLEMENT_DYNAMIC
. Merci beaucoup pour votre aide, Adam.
Mais je n'ai pas réussi à faire fonctionner la deuxième partie de ma question. Je voulais ajouter quelques fonctions supplémentaires dans la boîte de dialogue enfant, CMyDialog1, comme l'ajout d'un bouton "Enregistrer sous", mais je ne pouvais pas le faire. Est-ce parce que CMyDialog1 est un dialogue hérité de CMyDialog et par conséquent, je ne peux pas ajouter de nouvelles fonctions? Comment puis-je ajouter de nouvelles fonctions dans la boîte de dialogue héritée?