dynamisch erstellte Boxen



  • Hallo zusammen,

    wieder ein mal ein Problem.
    Ich erstelle in einem Dialog dynamisch Edit Felder usw.
    Ich kann diesen Dialog aktualisieren, und neue Felder erzeugen.
    Nur möchte ich, bevor die neuen Felder erstellt werden, die alten zuerst löschen.
    Im Moment werden die "neuen" einfach über die "alten" Felder gezeichnet.

    Weiss mir jemand einen Rat?



  • ähm evtl mit ?!! 😉

    CEdit::DestroyWindow();
    


  • Ne so einfach ist es eben nicht.

    Ich bin aber auf einem guten Weg..... :xmas1:



  • Doch eigentlich schon, oder?
    Ich habe eben kurz damit rumgespielt, du hast doch, bei ner dynamischen Erzeugung, sowieso nen Zeiger auf die Editbox. Mit diesem rufst du einfach die geerbte Funktion DestroyWindow() auf und die Editbox ist wieder weg.

    pEdit->DestroyWindow();
    


  • Hast recht. Das funzt schon.
    Nur bei mir ist es ein wenig komplizierter.
    Ich muss da einen anderen Weg gehn.....



  • mit CEdit:: meinte ich natürlich so wie inva es sagt
    CEdit *pEdit = new CEdit();

    schon mal nen blick in die msdn gewagt?? 😉

    New Edit:
    und was wäre bei dir komplizierter??



  • Bei mir sieht das so aus:

    m_aEdit[nIndex].Label.pControl	= new CEdit();
    m_aEdit[nIndex].Number.pControl = new CStatic();
    

    usw.



  • hast du die ID nr der Editbox evtl auch so gespeichert ??
    dann könntest dir ne abfrage machen ist id vorhanden wenn ja die m_aEdit[nIndex].Label.pControl an der selben stelle der Array löschen bzw. alle einträge.



  • Ich hab es ganz einfach gemacht.
    Habe zu kompliziert gedacht.

    Wenn ich die Seite aktualisiere, lösche ich zuerst alles mit delete, und dann mach ich ein OnInitDialog();


Log in to reply