Tab Control - Anzeigen von Untergeordneten Dialogen ??
-
Hallo,
Kann mir jemand mal erklären, wie das mit Tab-Controls funktioniert?
Ich habe schon vieles versucht (Try-And-Error), aber leider nur Errors gehabt!
Ich habe ein MFC Projekt, das auf Dialogfeldern basiert. In meinem Hauptdialog (IDD_TAB_DIALOG) habe ich ein Tab-Control(IDC_TAB1) eingefügt. Jetzt habe ich in der Initialisierungsmethode des Dialogfeldes folgenden Code geschrieben:
TC_ITEM Registerseite; Registerseite.mask=TCIF_TEXT; Registerseite.pszText="Seite 1"; Tab.InsertItem(0,&Registerseite); Registerseite.pszText="Seite 2"; Tab.InsertItem(1,&Registerseite); Registerseite.pszText="Seite 3"; Tab.InsertItem(2,&Registerseite); Tab.SetCurSel(2);Nun habe ich also einen Dialog, mit einem Tab-Control auf dem die Registerkarten "Seite 1 ", "Seite 2" und "Seite 3" sind.
Nu habe ich die OnTcnSelchangeTab1() Methode generieren lassen. Die wird immer dann aufgerufen, wenn sich im Tab was ändert.
Momentan sieht die bei mir noch so aus:void CTabDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult) { MessageBox("Neue Registerkarte!"); *pResult = 0; }In meinem Projekt habe ich jetzt ein weiteres Dialogfeld generiert. Das neue Dialogfeld ist Untergeordnet. Es at die ID: IDD_DIALOG1 .
Für den Dialog habe ich eine Klasse generieren lassen die "My" heißt.Ich kann nun theoretisch über
My op; op.DoModal();diesen Untergeordneten Dialog in mein Hauptfenster integrieren. Aber das führt dann zu einem fetten Programmabsturz. Logisch - schließlich schnappt sich dieses kleine Dialogfeld den Eingabefokus.
Nun bin ich mit meinem Latein am Ende!
Mein Ziel ist es, das wenn man auf eine Registerkarte geht, z.B. auf die Seite 2, dass dann der Dialog IDD_DIALOG1 im TabControl erscheint.
Dafür brauche ich den Code, die funktion oder was immer nötig ist um das zu realisieren.
Am liebsten wäre mir, wenn das funktioniert ohne das der Computer abstürzt, so wie in meinen Versuchen.
Ich freu mich über jede Hilfe.
Viele Grüße
David
-
Warum erzeugst du einen neuen Dialog? Du hast doch bereits einen (indem deine TabCtrl implementiert ist). Zeige doch in diesem deine Steuerelemente an. Oder geht das nicht?
-
Ich glaube der Springende Punkt ist die Frage:
"Wie Integriere ich Child Dialoge in einen Hauptdialog?"
Wenn ich das weiß, kann ich hoffentlich die Registerkarten Programmieren.
Nebenbei wäre das auch fr andere Projekte, ohne Registerkarten hilfreich!
MfG David
-
Du bist auf dem falschen Weg. Das muss man nicht selber machen!
Schau Dir mal die fertigen Klassen CPropertySheet und CPropertyPage an.