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 zeigen

    Versuch3

    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 CEdit

    khm.. 🙂 wenn du m_ausgabe für deinen CEdit von Typ CString nimmst wird schon alles funken 😃 dann klappt auch

    m_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_INIT
    

    kompiliere 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


Anmelden zum Antworten