Brauche dringend Hilfe bei Dialogen

Helpseaker

Grünschnabel
Ich habe ein Programm unter Visual Studio 6 begonnen. Es ist dialogbasiert, in C++, mit MFC.

Habe die insgesamt 7 Dialoge und die Klassen dazu erstellt.

Was möchte ich erreichen?

Bei Programmstart soll ein Dialog angezeigt werden. Über Buttons sollen die Dialoge miteinander verknüpft werden.

Da ich ein Newbie bin, bräuchte ich dringe (etwas ausführlichere) Hilfe.
 
Hallo Helpseaker,

also, in deiner Appllikationklasse wird ja in InitInstance() dein erster Dialog gestartet.

Sagen wir dein Startdialog heisst CMyDlg1

Dort findest du dann so was wie :
Code:
..
    CMyDlg1 dlg;
    m_pMainWnd = &dlg;
    INT_PTR nResponse = dlg.DoModal();
    if (nResponse == IDOK)
..
Nehmen wir an, du möchtest in diesem Dialog über einen Button einen weiteren Dialog starten, musst du für diesen Button(ID_DLG2) einen Eventhandler hinzufügen.

Dies kannst du über den Class-Wizard machen oder manuell etwa so:

in MyDlg1.h

afx_msg void OnBnClickedDlg2();

in MyDlg1.cpp
Code:
#include "MyDlg2.h"
..
BEGIN_MESSAGE_MAP(CMyDlg1, CDialog)
    ON_BN_CLICKED(ID_DLG2, &CFilialDlg::OnBnClickedDlg2)
    ..
END_MESSAGE_MAP()
..
void CFilialDlg::OnBnClickedDlg2() {

CMyDlg2 dlg2(this);
if( dlg2.DoModal() == IDOK ) {
  // Tu was
}
..
Beim Drücken des Buttons wird dessen Eventhandler aufgerufen.
In diesem wird eine Instanz der Klasse CMyDlg2 erzeugt und durch den Aufruf von DoModal() wird der Dialog gezeigt.

Weiter Handler für deine anderen Dialoge einzubauen, sollte jetzt wohl kein Problem mehr darstellen :)

Viel Erfolg und wenn du das ganze für modale Dialoge wissen willst, dann poste es.

Bis dahin schöne Grüße,

Peter
 
Zuletzt bearbeitet:
Korrektur :

Viel Erfolg und wenn du das ganze für modale Dialoge wissen willst, dann poste es.

Sollte natürlich nichtmodale heissen :)
 
Zurück