Dialogfeld dynamisch erzeugen
-
Hi,
ich versuche ein Dialogfenster mit Registerkarten zu erstellen. Jede Registerkarte enthält die gleichen Parameter (Parameter1 und Parameter2). Die Anzahl der Registerkarten soll sich nach einem weiteren Parameter(Anzahl), der über ein weiteres Dialogfeld eingegeben wird, richten. Wie ist das zu realisieren?
Mein bisheriger Code lautet wie folgt:CPropertySheet* pPropSheet = new CPropertySheet;
CDialog1* pPage1 = new CDialog1;
CDialog2* pPage2 = new CDialog2;
int i = 1;pPage1->m_dparameter1= m_pSim->m_dParameter1Array[i];
pPage1->m_dparameter2= m_pSim->m_dParameter2ArrayArray[i];
pPage2->m_dparameter1= m_pSim->m_dParameter1Arrayrray[i];
pPage2->m_dparameter2= m_pSim->m_dParameter2ArrayArray[i];pPropSheet->AddPage(pPage1);
pPropSheet->AddPage(pPage2);
pPropSheet->DoModal();m_pSim->m_dParameter1Array[i] = pPage1->m_dparameter1;
m_pSim->m_dParameter2Array[i] = pPage1->m_dparameter2;
m_pSim->m_dParameter1Array[i] = pPage2->m_dparameter1;
m_pSim->m_dParameter2Array[i] = pPage2->m_dparameter2;
-
Warum CDialog?
Für PropertyPages gibts doch die Klasse CPropertyPage!
-
Original erstellt von RenéG:
Warum CDialog?
Für PropertyPages gibts doch die Klasse CPropertyPage!Die Dialogklassen CDialog1 und 2, die die Registerkarten repräsentieren, sind von der Klasse CPropertyPage abgeleitet. Das Programm läuft auch so.
Meine Frage zielte eher darauf ab, wie man die Anzahl der Registerkarten, die dargestellt werden, von einem weiteren einzugebenden Parameter abhängig macht. Da die Registerkarten alle die gleichen Parameter enthalten, dachte ich z.B. an eine einfache for-Schleife, die von i=1 bis i=Anzahl läuft und für den Datenaustausch zwischen den Parametern der Registerkarten und den entsprechenden Arrays sorgt, unter Verwendung einer einzigen Variablen pPage. Dann ergeben sich natürlich Konflikte mit den verschiedenen Dialogklassen. Für einen weiteren Tip zur Lösung des Problems wäre ich sehr dankbar.