Textausgabe
-
Hi!
Ich will in einem "Edit Control"-Feld mein Endergebnis ausgeben lassen. Habe eine Funktion geschrieben die eine Berechnung durchführt. Diese habe ich dann, wenn ein Knopf gedrückt wird aufegerufen. Dann will ich mein Endergebnis ausgeben lassen. Sollte doch eigentlich in der Methode "OnEnChangeEdit4()" aufgerufen werden. Meine Frage ist: Wie?
Bin leider noch nicht so erfahren im programmieren. Wäre also sehr dankbar für ne Antwort.
Gruss wingdouble CDVG3_StephanDlg::Berechnung(double dAuRadius,double dInRadius,double dHoehe) { double _radiusA=dAuRadius; double _radiusI=dInRadius; double _hoehe=dHoehe; double dErgebnis; berechneterWert = 3,1415 * (_radiusA-_radiusI) * _hoehe; return dErgebnis; } void CDVG3_StephanDlg::OnBnClickedButton1() { Berechnung(dAuRadius, dInRadius, dHoehe); } void CDVG3_StephanDlg::OnEnChangeEdit4() { }
-
Einen Text in ein Edit-Control kannst du mit SetWindowText setzen:
void CDVG3_StephanDlg::OnBnClickedButton1() { double result = Berechnung(dAuRadius, dInRadius, dHoehe); CString txt; txt.Format( "%g", result ); m_Edit4.SetWindowText( txt ); }
Die Notfication-Message EN_CHANGE wird vom Edit-Control an den Dialog gesendet, wenn sich im Edit-Control die Eingabe ändert.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/editcontrols/editcontrolreference/editcontrolmessages/en_change.asp
-
Guten Morgen!
Also ich hab das mal so versucht, aber er zeigt mir jetzt den Fehler an das
vor "SetWindowText" eine Klasse/Union/Struktur stehen muss.void CDVG3_StephanDlg::OnBnClickedButton1() { double result = Berechnung(dAuRadius, dInRadius, dHoehe); CString txt; txt.Format( "%g", result ); m_Edit4.SetWindowText( txt ); }
Ich bin davon ausgegangen das davor die ID von dem EditControl-Feld geschrieben werden muss. Aber da zeigt er mir den gleichen Fehler an. Wer kann mir da vielleicht boch mal weiterhelfen? Danke.
gruss wing
-
Mister Wing schrieb:
Also ich hab das mal so versucht,
So funktioniert das nur, wenn du eine CEdit-Variable hast, die du mit dem Steuerlement verknüpft hast.
Eine weitere Möglichkeit wäre, eine CString-Variable mit dem Steuerelement zu verknüpfen und UpdateData zu benutzen.
In deinem Fall dürfte es allerdings Folgendes am einfachsten sein:
SetDlgItemText(IDC_EDIT4, txt);
Ich nehme an, dass IDC_EDIT4 die Ressource-ID deines Textfelds ist. Wenn nicht, musst du das entsprechend anpassen.