DeleteContents()



  • hi Leute,

    also folgendes Problem: Ich möchte, wenn ich auf Datei->Neu gehe alle Listenfeldeinträge löschen. Habe deshalb in der Doc die Methode DeleteContents() angelegt. Habe mir halt einen Zeiger auf die View besorgt:
    POSITION pos=GetFirstViewPosition();
    CTestView* pView=(CTestView*)GetNextView(pos);
    und dann einen Zeiger auf das Listenfeld und in einer Schleife einfach gelöscht. Das funktioniert auch ohne Probleme. Also die Einträge sind weg. Aber wenn ich das Programm verlasse kommt ein Speicherfehler. Hat zwar keine Auswirkungen, aber sehr toll sieht das auch nicht aus. Woran kann das liegen???

    MFG Spaxx



  • bin jetzt nicht vor MFC

    aber ich hätte schwören können es heisst irgendwas mit

    ResetContents()

    musst mal schauen dann brauchst auch keine for schleife
    einfach eingeben

    m_listbox.ResetContent();  // naja so in etwa, hoffe jetzt hasst mich keiner, wie gesagt kann grad net nachschauen
    

    wenn sowas nicht gibt dann drueck mal F1-taste wenn du auf dein DeleteContent() bist und schau dir die methoden an welche alle gibt. dann findest das passende



  • hab doch schnell in der MSDN geschaut
    also nur ein befehl nötig 😉

    ZITAT:

    void ResetContent( );

    Example
    // The pointer to my list box.
    extern CListBox* pmyListBox;

    // Delete all the items from the list box.
    pmyListBox->ResetContent();
    ASSERT(pmyListBox->GetCount() == 0);



  • ich glaub ihr habt mich falsch verstanden. Die Methode DeleteContents() ist in der Doc! Die Einträge werden gelöscht, egal ob in der Schleife oder nur mit ResetContent();. Macht keinen Unterschied der Speicherfehler bleibt trotzdem. Ich vermute, das es was mit dem Zeiger aus die View zu tun hat.


Anmelden zum Antworten