OnCancel() im OnInitDialog()
-
Ich überprüfe etwas in der Registrierung, wenn dort kein Wert enthalten ist, soll das Programm beendet werden! Aber es funktioniert nicht. Er geht einfach hinüber weg und macht weiter.
if (test = "")
{
MessageBox("Fehler", "Fehler");
OnCancel();
}Was ist daran falsch, oder geht das garnicht?
-
EndDialog(IDCANCEL);
grüsse
-
Ich möchte das Programm beenden. Ich muss Ihm doch sagen können, dass er mir das Programm komplett beendet. Ich verstehe nicht was du meinst mit EndDialog(IDCANCEL)
-
Dann guck mal in die MSDN! Ich gehe mal davon aus, dass Du eine dialogbasierte Anwendung hast. Wird der Dialog beendet, wird auch das Programm beendet.
-
Das ist ja alles schön und gut. In die MSDN habe ich auch geschaut und auch EndDialog angepasst. Aber er bringt mir noch immer die MessageBox und danach geht er im Code weiter. OnCancel oder EndDialog interessiert ihn überhaupt nicht. Ich habe es mir auch mit dem Debugger angeschaut. Er geht dann alles weiter durch und beendet das DialogFenster bzw Programm erst nach dem kompletten Durchlauf der OninitDialog. Er soll mir aber gleich nach der MessageBox das Programm beenden.
-
Ich glaube ich habe es jetzt. Ich habe ein return FALSE gesetzt. Oder sollte ich das nicht tun. Da springt er mir auf jeden Fall raus, wenn der Reg Eintrag nicht vorhanden ist
-
OnCancel oder EndDialog sendet eine Nachricht an den Dialog. Da dein Dialogfeld allerdings erst noch mit der OnInitDialog beschäftigt ist, wird diese Nachricht erst verarbeitet wenn er wieder zeit hat, sprich aus der OnInit rauskommt. Du brauchst ja nur direkt nach dem OnCancel() ein return irgendwas machen. Dann wird auch der Rest in der OnInit nicht mehr ausgefürht und das programm wird sofort wieder beendet.
-
Gut habe ich auch gemacht.
MessageBox
Oncancel();
return FALSE;Trotzdem Vielen Dank