Text in CEdit-Fenster ausgeben
-
Hallo,
Ich benötige etwas Hilfe.
Ich habe eine Anwendung auf Dialogbasis mit dem VC++ 6.0 Assistenten erstellt.
Die Anwendung besteht aus einem Dialogfenster und in diesem Fenster befindet sich ein CEdit-Fenster zur Textausgabe. Es soll nur der Text von einer Variablen ausgelesen und angezeigt werden. Nur blieb das CEdit-Fenster bis jetzt immer leer.
Ich habe schon einige Tips zu CEdit,die in diesem Forum geschrieben wurden ausprobiert,bis jetzt leider ohne Erfolg.Ich habe folgendes erstellt:
Ansicht.h
AnsichtDlg.h
Resource.h
StdAfx.h
Ansicht.cpp
AnsichtDlg.cpp
Ansicht.rc
StdAfx.cpp- ein CEdit-Fenster mit der ID,IDC_EDIT1
- eine Membervariable m_ausgabe von Typ CEdit
---------------------------------------------------------------------------
Versuch1 um den Text im CEdit-Fenster anzuzeigen:m_ausgabe = "Test"; UpdateData(FALSE);Fehlermeldung vom Kompiler:CEdit Operator "=", ist nicht verfügbar.
Versuch2
m_ausgabe->SetWindowText("test"); UpdateData(FALSE);Fehlermeldung vom Kompiler:CEdit hat keinen Überladenen Elementoperator "->",
Linke Teil von SetWindowText muß auf Klasse/Stuktur/Union zeigenVersuch3
SetDlgItemText(IDC_EDIT1 , "test" ); UpdateData(FALSE);Fehlermeldung keine, auch keine Textausgabe.
Den Quellcode habe ich in die AnsichtDlg.cpp geschrieben.
Jetzt weiß ich nicht mehr weiter.Gruß Tom
-
Hiiiiiii,
GetDlgItem(IDC_EDIT1)->SetWindowText("Hallo Welt, das Leben ist schön");
oder:
CWnd::UpdateData(TRUE);
m_ausgabe=("Hallihallooo");
CWnd::UpdateData(FALSE);
-
Tom37 schrieb:
- ein CEdit-Fenster mit der ID,IDC_EDIT1
- eine Membervariable m_ausgabe von Typ CEditkhm..
wenn du m_ausgabe für deinen CEdit von Typ CString nimmst wird schon alles funken
dann klappt auchm_ausgabe = "Test"; UpdateData(FALSE);deine Variable von Typ CEdit ist eine Control-Variable. mit der kannste net m_ausgabe = "Test" machen. Und wenn du
m_ausgabe->SetWindowText("test"); UpdateData(FALSE);machst, brauchst du kein UpdateData(FALSE) und natürlich statt "->" den "." nehmen.
Viel Erfolg!
-
Hallo Dysfunktion,Reticent!
Ich habe all euren Quellcode mal ausprobiert und es erschien leider kein Text im Ausgabefenster.
Der Kompiler hat keine Fehlermeldung angezeigt.Wenn ich folgenden Quellcode,
//{{AFX_DATA_INIT(CAnsichtDlg) m_ausgabe = _T("Test"); //}}AFX_DATA_INITkompiliere und dann die Anwendung starte,wird "Test" im Ausgabefenster angezeigt.
In meiner erstellten Funktion "void CAnsichtDlg::Anzeigen()" habe ich keinen Zugriff auf die Variable,zumindest im Debug-Modus war sie immer leer.Muß man noch irgendwo vielleicht eine Nachricht-Funktion einbauen z.B."ON_EN_UPDATE",unter BEGIN_MESSAGE_MAP...?
Der Fehler liegt bestimmt an einem anderem Punkt,oder spinnt mein Kompiler?Gruß Tom37
-
Hallo,
also wenn du in deinen Dialog einen Button einfügst, diesen klickst um die zugehörige Funktion anzulegen/zubearbeiten und dann in den Funktionsrumpf schreibst:
GetDlgItem(IDC_EDIT1)->SetWindowText("H4LL0");
sollte auf jeden Fall im Editfeld mit der ID IDC_EDIT1 der Text "H4LL0" erscheinen, sobald der Button geklickt wird.
Ansonsten stimmt was nicht.
Vielleicht mal alles bereinigen/neu kompilieren?
-
Hallo Dysfunktion,
Dein Code:
GetDlgItem(IDC_EDIT1)->SetWindowText("H4LL0");Ich habe eine bessere Lösung gefunden.
SetDlgItemText(IDC_EDIT1,m_ausgabe)Die Variable m_ausgabe bekommt vorher noch der Text zugewiesen und dieser
wird dann angezeigt.Danke für die Tip's.
Gruß Tom37