Neuen Dialog öffnen im neuen dialogfesnter den hauptdialog schliessen?



  • Ich habe einen Hauptdialog und dort öffne ich ein neues dialogfesnter wo ich eine Frage stelle: Sicher beenden? Antworten ja und nein bei nein einfach das aktuerlle Fenster schliessen --> kein Problem bei Ja sollte das aktuelle Febnster geschlossen werden (kein Problem) und das Hauptfenster auch --> Da kann ich zwar alles mögliche machen und auf alle Funktionen zugreifen nur wenn ich die Funktion starte wo ich OnOK(); ausführe kommt immer nur die Fehlermeldung: -->
    C:\Programme\Microsoft Visual Studio\MyProjects\test.cpp(308) : error C2352: 'CDialog::OnOK' : Unzulaessiger Aufruf einer nichtstatischen Member-Funktion
    C:\Programme\Microsoft Visual Studio\VC98\MFC\INCLUDE\afxwin.h(2616) : Siehe Deklaration von 'OnOK'

    Was mache ich da Falsch? Die Funktion die ich aufrufe wo ich OnOK(); ausführe ist eine static void wie in der Hilfe beschrieben.
    Wenn ich in diese Funktion eine AfxMessageBox einbaue und das OnOK(); ausklammer funktioniert das auch super!
    Nur das schliessen eben nicht!

    Danke



  • Servus,

    das brauchst du doch garnicht so kompliziert zu machen. Wenn du nur Fragen willst "Wollen sie sicher beenden?" dann arbeite doch mit der Funktion OnCancel(). Ich zeige dir das mal kurz:

    In der Dialog.cpp

    BEGIN_MESSAGE_MAP(CDeinDialog, CDialog)
    	ON_WM_SYSCOMMAND()
    	ON_WM_PAINT()
    	ON_WM_QUERYDRAGICON()
             ON_WM_CANCEL() //<<<<---- DAS DAZU TRAGEN
    	//}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    

    Dialog.cpp

    void CDeinDialog::OnCancel() 
    {
       //Wird bei der Box NEIN gedrückt dann kehre zurück ansonsten
       //Schließe den DIALOG. Dann wird alles geschlossen.  
       if ( AfxMessageBox("Wollen Sie wirklich das Programm beenden?", 
             MB_YESNO) == IDNO )
          return;    
    
       CDialog::OnCancel();
    }
    

    Dialog.h

    //unter implementierung
    public:
    afx_msg void OnCancel();
    

    das wäre eine Möglichkeit gibt nor mehrere. Ich denke mal das hier ist in deinem Sinne. Wenn nicht gehen sollte melden ich habs nicht getestet geht aber bestimmt.
    😃
    Hellsgore



  • Super Danke.

    War zwar nicht genau das aber aus dem hab ich das weiter ableiten können!
    Danke

    Wobei mich das Problem aber noch interessieren würde!

    Danke


Anmelden zum Antworten