Dialogfeld
-
Da bin ich schon wieder
In meiner Dialogbasierenden Anwendung soll eine while-Schleife solange durchlaufen, bis ich den Button Stop drücke. Im Assistenten habe ich den Typ CButton das Element m_Stop gewählt
while (m_Stop)
Leider habe ich ein wunderbare Endlosschleife gebastelt.
Wie mache ich das richtig
Vielen THX Markus
-
Also du musst ja auch noch sagen, das das ding gedrückt würd. also m_Stop.Gedrückt mir fällt jetzt nicht die Funktion ein die für gedrückt da stehen muss.
-
Ich habe gerade mal ausprobiert:
while (dlg.DoModal() == IDC_STOP)
Als ich die Schleife startete, kam eine böse Fehlermeldung von Windows, so mit Debugger und so
Scheint es also net zu sein
Aber vieleicht gibt es noch andere Möglichkeiten. Ich bin für jeden Tip dankbar:
THX
-
ich würd nicht so viel saufen !!!!
-
Also wenn ich dich richtig verstanden hab, würde ich das ganze so machen:
INT_PTR nResult; bool bIsStopped = false; do{ nResult = dlgLogin.DoModal(); if(nResult == IDSTOP) { bIsStopped == true } } while(!bIsStopped);
-
Und selbst das Funktioniert nicht.
Wenn du eine Schleife in einem Dialog baust dann kannst du keine Button mehr drücken weil die MessageLoop nicht ausgeführt wird.
Für diese Problem verwendet man Threads oder man ruft die MessageLoop selbst auf.
Schau mal in die FAQ: