VC++ gesamten Dialog aktualisieren (UpdateData)

smallone

Mitglied
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:
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
 
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
Code:
m_controlVariable.SetWindowText("test");
Das sollte natürlich nicht nur bei Buttons und Titeln der Fall sein, sondern für jedes erdenkliche Steuerelement gelten.

Lange Rede kurzer Sinn, versuch mal Deine Programme unabhängig von UpdateData(TRUE/FALSE) zu schreiben.
 
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
 
Zurück