Updaten
-
Moin moin,
ich habe mir einen Dialog gebastelt. Auf Knopfdruck möchte ich einen Counter in einem Textfeld darstellen. Also 1, danach 2, danach 3. Im Augenblick wird dann nur eine 4 angezeigt, da dann das Abbruchkriterium sticht.
while(running){ i++; itoa ( i, str, 10 ); wnd->SetWindowText(str); Sleep(500); if(i == 4) running = false; }Ich vermute, dass es einer Art "Update"-Befehl gibt.
Wer kann helfen?
Vielen Dank schonmal!
j.
-
Gibt 3 Möglichleiten, aber kein Updatebefehl.
1. Du nutzt den Timer deines Dialoges (ist am einfachsten)
2. Du erledigst den Messageloop selbst,da du in der schleife hängst wird deine Anzeige nicht aktualisiert und deswegen siehst du nichts
http://www.mpdvc.de/html.htm#Q75 zeigt wie das geht, is aber eher ein Hack als das man es so machen sollte
3. du erstellt einen Thread und sendest das Ergebnis (also die Zahl) per Send-/Post-Message an deinen Dialog (ist am schwirigsten.Also such dir was raus, aber wie in Basic oder so wird dir in der MFC nicht geholfen
da ist viel selbst zu fuß zu machen, dafür hast du die volle Freiheit
-
Hi,
CTecS schrieb:
Gibt 3 Möglichleiten, aber kein Updatebefehl.
1. Du nutzt den Timer deines Dialoges (ist am einfachsten)
Erstmal schonmal vielen Dank!
Da habe ich leider noch nie was von gehört. hast du da mehr Infos?
-
Ist eigentlich recht einfach, du musst nur WM_TIMER deines Dialoges überschreiben und mit SetTimer() an der passenden stelle, im Handler deines Buttons den Timer Starten und mit KillTimer() den wieder beenden.
hier mal noch ne beschreibung des ganzen mit Beispiel:
http://www.developer.com/net/cplus/article.php/603531
-
CTecS schrieb:
Ist eigentlich recht einfach, du musst nur WM_TIMER deines Dialoges überschreiben und mit SetTimer() an der passenden stelle, im Handler deines Buttons den Timer Starten und mit KillTimer() den wieder beenden.
hier mal noch ne beschreibung des ganzen mit Beispiel:
http://www.developer.com/net/cplus/article.php/603531Moin,
bin genauso vorgegangen, hab nur leider für die Stelle ON_WM_TIMER() folgende Fehlermeldung gekriegt:
error C2440: 'static_cast': 'void (__thiscall CMy10App::* )(UINT)' kann nicht in 'void (__thiscall CWnd::* )(UINT_PTR)' konvertiert werden
Ich verstehe leider gar nichts...
-
Du musst in der Definition von OnTimer das UINT zu UINT_PTR ändern.