Dialog Schließen abbrechen

Hallo,

ich kann mich erinnern, daß es eine sehr einfache Möglichkeit gibt, die OnOk oder OnCancel Funktion eines CDialogs abzubrechen und das Schließen des Dialogs zu verhindern. Ich glaube man muß nur eine Variable setzen. Leider kann ich mich nicht mehr erinnern welche. Könnt ihr mir helfen?

Anne

Hmm ,
ich hab einfach die OnOK und OnCancel überschrieben.

// CtstDialogeApp Meldungshandler


void CAboutDlg::open\_mouth:nCancel()
{
 // TODO: Fügen Sie hier Ihren spezialisierten Code ein, und/oder rufen Sie die Basisklasse auf.

 // CDialog::open\_mouth:nCancel(); // nie mehr Cancel
}

void CAboutDlg::open\_mouth:nOK()
{
 // TODO: Fügen Sie hier Ihren spezialisierten Code ein, und/oder rufen Sie die Basisklasse auf.

 // CDialog::open\_mouth:nOK(); // nie mehr OK
}

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Das Überschreiben der Funktionen löst mein Problem leider nicht, der Dialog schließ immer noch.

Das Überschreiben der Funktionen löst mein Problem leider
nicht, der Dialog schließ immer noch.

??? , verstehe ich nicht . Bei mir schliesst er nicht .

Hast du auch das gemacht was ich gemacht hab

das Auskommentiert

CDialog::open\_mouth:nCancel();

also

// CDialog::open\_mouth:nCancel();

innerhalb der Funktion DeinDialog::open_mouth:nCancel()

Richtig: Auszug aus MSDN
Hallo,

ein kurzer Blick in die MSDN Library sagt schon alles :wink:

CDialog::open\_mouth:nCancel 
The framework calls this member function when the user clicks the Cancel button or presses the ESC key in a modal or modeless dialog box.

virtual void OnCancel( );

Remarks
Override this member function to perform Cancel button action. The default simply terminates a modal dialog box by calling EndDialog and causing DoModal to return IDCANCEL.

If you implement the Cancel button in a modeless dialog box, you must override the OnCancel member function and call DestroyWindow from within it. Don't call the base-class member function, because it calls EndDialog, which will make the dialog box invisible but not destroy it.

Link: http://msdn.microsoft.com/library/default.asp?url=/l…

mfg,
Christoph