Problem bei ComboBox-AddString Funktion



  • ja aber meine strings sind in einer andere Dialog Klasse in Listbox gespeichert. die will ich in View Klasse benutzen



  • CEdit *pEntry = static_cast<CEdit*>(GetDlgItem(IDC_NEWENTRY));
    		CString      CEntryText;
            pEntry->GetWindowText(CEntryText);
    
            // und zur Listbox hinzufuegen
            m_ComboBox.AddString(CEntryText);
    

    ich habe es so probiert aber ich bekomme ein Problem bericht



  • steffan49 schrieb:

    CEdit *pEntry = static_cast<CEdit*>(GetDlgItem(IDC_NEWENTRY));
    		CString      CEntryText;
            pEntry->GetWindowText(CEntryText);
    		
            // und zur Listbox hinzufuegen
            m_ComboBox.AddString(CEntryText);
    

    ich habe es so probiert aber ich bekomme ein Problem bericht

    und welchen, soll das jetzt jemand erraten? Was geht schief, oder was ist dein Problem?



  • man kann es kompilieren aber wenn man das Programm ausführen möchte dann bekomme ich so ne meldung " statistik.exe hat ein Problem festgestelt und muss beendet werden. "
    bericht beinhaltet folgende daten
    AppName: statistik.exe AppVer: 1.0.0.1 ModName: mfc42d.dll
    ModVer: 6.0.9782.0 Offset: 000305ea

    Das ist glaub ich ein speicherfehler und ich weiß nicht was ich im Code falsch mache



  • PC: ich habe im Debbug modus angeschaut, das Problem tritt bei der

    pEntry->GetWindowText(CEntryText);
    

    wenn man das auskommentiert, bekommt man kein Unbehandelte ausnahme.. aber dann tut das nicht was ich will



  • Dann ist wohl pEntry NULL.
    Schau dir den Pointer beim Debuggen mal genauer an.

    Kann es sein, dass es das CEdit zum Zeitpunkt des Aufrufs von GetWindowText noch nicht gibt ?
    Also noch nicht erstellt wurde ?



  • steffan49 schrieb:

    Das ist glaub ich ein speicherfehler und ich weiß nicht was ich im Code falsch mache

    Ganz einfach, du lässt dir einen Zeiger geben und Prüfst den noch nicht einmal auf Gültigkeit, was ja nun das mindeste ist.



  • ach , wie dennn??? hab nich kapiert..?



  • na vielleicht so:

    CEdit *pEntry = static_cast<CEdit*>(GetDlgItem(IDC_NEWENTRY));
    if(pEntry)
    {
            CString      CEntryText;
            pEntry->GetWindowText(CEntryText);
    
            // und zur Listbox hinzufuegen
            m_ComboBox.AddString(CEntryText); 
    }
    

    vielleicht solltest du dich mit den C++ Grundlagen beschäftigen und nicht unbedingt mit MFC


  • Mod

    Noch einfacher ist:

    CString      CEntryText; 
            GetDlgItemText(IDC_NEWENTRY,CEntryText); 
    
            // und zur Listbox hinzufuegen 
            m_ComboBox.AddString(CEntryText);
    

    BTW: Du solltest Dich mal entscheiden wie Du Deine Variablen nennst...
    CEntryText ist irreführend...


Anmelden zum Antworten