editboxen in Schleifen ändern
-
Hallo,
ich habe Folgendes Problem:ich möchte einen String an eine Editbox schicken.
Die Variable der editbox ist m_edit. Allerdings soll dieser String bei jedem Schleifendurchlauf an die box gesendet werden:void CTstDlg::OnButton1() { string name = "a"; //das ist der string, der an die editbox geschickt werden soll for(int a=0;a<10;++a) { string hilf = name; //umwandeln von name CString hilf2(hilf.c_str()); //von string in CString UpdateData(true); m_edit=hilf2; //string an die editbox schicken UpdateData(false); Sleep(100); //0.1 sek warten name = name + "a"; //name verändern } }Das Problem dabei ist, dass nur der String des letzten Schleifendurchlaufs an die Box gesendet wird. Hat jemand eine Idee woran das liegen könnte?
-
Stimmt nicht. Er wird immer gesendet, nur wird die Anzaige nicht aktualisiert weil Du dem Fenster keine Chance dazu gibt.
Verwende UpdateWindow!
BTW: Warum verwendest Du nicht direkt SetWindowText oder SetDlgItemText sondern imm UpdateData?
Ist in meinen Augen hier ineffektiv.
-
ich habe meinen code jetzt folgendermaßen abgeändert:
string name = "a"; //das ist der string, der an die editbox geschickt werden soll for(int a=0;a<10;++a) { CString hilf(name.c_str()); SetDlgItemText(IDC_EDITBOX,hilf); Invalidate(); UpdateWindow(); }Doch jetzt wird das Fenster nur beim ersten und beim letzten Schleifendurchlauf geändert. Was mache ich falsch?
-
Wunderbar, hatten gerade das gleiche Problem und haben stundenlang dran gearbeitet. Die Lösung hier hat uns gerettet. Danke!
