Buttons nicht ansprechbar?!
-
Casimus hat schon wieder ein Problem *schäm* :
Auf meiner Oberfläche ist ein Start-Button mit dem ich eine Endlosschleife starte. Meine Abbruchbedingung soll eine Stop-Button sein...
Wenn ich jedoch den Start-Button drücke, ist kein Button mehr ansprechbar...somit kann ich meine Endlos-Schleife nur noch durch den Affengriff beenden . . . was kann ich da tun?Für eine Antwort wäre ich sehr dankbar
-
Das sollte dir doch eigendlich klarr sein das
wenn du eine Endlosschleife hast dann nichts mehr geht
Prozessorauslastung nahe 100 %.
Du kannst das Problem lösen wenn du deinem Stopbutton eine
Variable zuweist und diese dan in der
Endlosschleife den Zustand abfragstVossy
-
Das geht doch dann trotzdem nicht, weil man ja nicht auf den Stop-Button drücken kann. Die Windows-MessageLoop ist doch dann auch blockiert.
Für dieses Problem bieten sich eigentlich Threads an.
-
@thomas80d
Ich weiss zwar was Threads sind, aber nicht wie damit umgehen bzw.
wie coden...
Würde dann praktisch der Start-Button der erste Thread sein,
und der Stop-Button dann der der zweite Thread oder wie??!Vielleicht kennt ja jemand ein Sample-Code...ich denk nicht das ich der einzige bin der dieses Problem hat/hatte....oder etwa doch?!
-
Original erstellt von Casimus:
ich denk nicht das ich der einzige bin der dieses Problem hat/hatteDa denkst du richtig. Wenn du mal die wiederauferstandene Suchfunktion zu Rate ziehst, wirst du mit Sicherheit eine Lösung finden. Stichwort: CWinThread
-
-
thomas80d
Vielen Dank für die Blumen...
Hab was gefunden...thx
-
-
->CrazyOwl
Hammer...es funktioniert!!
THX
-
es geht auch anders, wenn man in dieser Endlosschleife ab und zu diese Funktion aufruft, dann reagieren auch alle buttons und visuals usw...
void CWipeFreeDlg::DoEvents() // Evtl. Anstehende Events ausführen { MSG msg; // Message Variable // Process existing messages in the application's message queue. // When the queue is empty, do clean up and return. while (PeekMessage(&msg,NULL,0,0,PM_NOREMOVE)) { // Solange Messages vorhanden if (!AfxGetThread()->PumpMessage()) return; // Kein plan... :-) } }
-
Ich seh schon...
... lauter Freakz & Crackz