ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
1295
1295
EMPFEHLEN
-
Hallo zusammen,
ich habe folgende Funktion (OnValider), die leider nicht das tut, was sie soll (Benutzereingabe aus Eingabefeld auslesen, in Datei schreiben und _direkt_ das Feld wieder leeren)
OnValider ist mit einem Button "Enter" in meinem Dialog verknüpft.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
void CDialogeDlg::OnValider() { UpdateData(TRUE); // Eingabe des Benutzers übernehmen // hier schreibe ich den Emfindungswert des vorherigen! Signals in die Datei. std::ofstream of ( "Results.txt" , std::ios_base::app ); of << LPCTSTR( m_sResults )<< std::endl; //LPCTSTR() gibt den Char-Buffer des CStrings zurück // danach soll das Anzeigefeld wieder leer sein: m_sResults = ""; UpdateData(FALSE); // schnipp - zahlreiche weitere Funktionen folgen hier.... // }
Leider funktioniert das sofortige "Überschreiben" der alten Eingabe mit m_sResults = " " nicht.
Es scheint daran zu liegen, daß mein gesamter Dialog nicht oft genug "neu gezeichnet" wird und somit die Anzeigen "upgedated" werden.
Kann mir ein Programmierer eine Lösung dazu bieten ?
Vielen Dank,
Gruß
BEN
-
23.05.04 20:17 #2
- Registriert seit
- Aug 2001
- Beiträge
- 1.411
Bist du sicher, dass du dieses eigenartige UpdateData brauchst?
Um diese ganze Geschichte mit der fehlenden und zu späten aktualisierung habe ich immer nur mit Control-Membervariablen gearbeitet, über die ich dann die Steuerelemente direkt ansprechen kann.
Z.B. einen Text eines Buttons zu ändern nicht mehr per Membervariable plus UpdateData sondern mit
Das sollte natürlich nicht nur bei Buttons und Titeln der Fall sein, sondern für jedes erdenkliche Steuerelement gelten.Code :1
m_controlVariable.SetWindowText("test");
Lange Rede kurzer Sinn, versuch mal Deine Programme unabhängig von UpdateData(TRUE/FALSE) zu schreiben.
-
23.05.04 22:37 #3
- Registriert seit
- Jul 2003
- Ort
- Duisburg (NRW)
- Beiträge
- 1.788
Laut Joseph M. Newcomer ist UpdateData() sowieso nicht das Wahre. Die Gründe habe ich gerade nicht parat, aber sie waren sehr überzeugend (habe den Artikel vor ca. zwei Jahren gelesen und auch vorher noch nie UpdateData() verwendet). Lest selber nach unter UpdateData -- Segen oder Teufelswerk oder so ähnlich
Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."
-
Hallo zusammen,
stimmt, die UpdateData() funktioniert nicht toll, dadurch ist ja meine Frage aufgekommen.
Mein Problem habe ich mitlerweile durch eine komplette Umgestaltung meiner Funktionen lösen können.
Das nächste Mal werd ich dann wohl auch die Finger davon lassen und die Beispiele aus Kachelators Link verwenden !
Danke für Eure Hilfe !
Grüße BEN
Ähnliche Themen
-
C++, Speichern unter Dialog aktualisieren
Von sand13r im Forum C/C++Antworten: 2Letzter Beitrag: 15.11.07, 15:06 -
UpdateData und CThread
Von JoachimJogi im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 04.06.07, 10:12 -
Unterschied zwischen UpdateData(false) und UpdateData(true)
Von nammder im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 19.10.06, 09:21 -
OnPaint im ersten Dialog aktualisieren?
Von Ron-calli im Forum VisualStudio & MFCAntworten: 5Letzter Beitrag: 28.10.04, 15:29 -
Updatedata und Refresh
Von RuNDUMiEzE im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 08.10.04, 14:54





Zitieren
Login






