Message an Dialog Senden
-
Hallo!
Da ich mich endlich mal zur MFC durchgerungen habe ich auch direkt mal eine erste Frage an euch

Ich hab volgende Methode:
void CToolboxDlg::OnButton1() { // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen int iResult, i=1; CString strTitel; strTitel.Format(" Frage #%d", i); iResult = MessageBox("Was ist hier los?", strTitel, MB_RETRYCANCEL | MB_ICONQUESTION); switch(iResult) { case IDRETRY: { i++; strTitel.Format(" Frage #%d", i); // hier soll der erneute AUfruf der MessageBox mit nachfolgender auswertung gestartet werden // MessageBox("Was ist hier los?",strTitel, MB_RETRYCANCEL | MB_ICONQUESTION); break; } case IDCANCEL: { MessageBox("Aber echt, he!!"); break; } } }Ihr könnt euch sicherlich schon so halb denken, was ich (zum lernen ;)) vor habe: Wenn im Dialog Retry gedrückt wird möchte bich das die Message box nochmal aufrufen. Das soll allerdings bis in alle ewigkeit passieren (rein theoretisch zumindest) und nicht nur 2 mal. Sicherlich könnte ich die Methode rekursiv immer wieder aufrufen, aber ich möchte nich unnötig rummüllen.
Alternativ währe dann SendMessage() (die ich, sofern Sinnvoll auch gern nutzen würde), aber da weis ich nicht so recht wie ich damit umgehe.
Gruß
THE_FreaKPS: Suche hat mir nicht viel weiter geholfen, vllt hab ich die richtigen Themen aber auch einfach nicht gefunden ^^
-
iResult = MessageBox("Was ist hier los?", strTitel, MB_RETRYCANCEL | MB_ICONQUESTION); switch(iResult) { case IDRETRY: { i++; strTitel.Format(" Frage #%d", i); // hier soll der erneute AUfruf der MessageBox mit nachfolgender auswertung gestartet werden // MessageBox("Was ist hier los?",strTitel, MB_RETRYCANCEL | MB_ICONQUESTION); break; } case IDCANCEL: { MessageBox("Aber echt, he!!"); break; } }Nachdem die switch-Anweisung ausgeführt wurde ist die Funktion abgearbeitet und sie wird verlassen. Wenn du mehrere Messageboxen sehen willst musst du eine Scleife drum packen.
do { iResult = MessageBox("Was ist hier los?", strTitel, MB_RETRYCANCEL | MB_ICONQUESTION); switch(iResult) { case IDRETRY: { i++; strTitel.Format(" Frage #%d", i); // hier soll der erneute AUfruf der MessageBox mit nachfolgender auswertung gestartet werden // MessageBox("Was ist hier los?",strTitel, MB_RETRYCANCEL | MB_ICONQUESTION); break; } case IDCANCEL: { MessageBox("Aber echt, he!!"); break; } } } while (iResult == IDRETRY);
-
Mal wieder zu kompliziert gedacht...

Danke jedenfalls

Aber mal ganz nebenbei: wie würde ich denn Messages in die Nachrichtenbwarteschleife stellen? (z.B. um ein anderes Element zu aktivieren, wie einen 2. Button?)
-
Kann ich nicht genau sagen. musst du dir die Funktionen SendMessage() und/oder PostMessage() mal anschauen