Wertübergabe an ein Dialog



  • Hallo,

    ich möchte ein CListCtrl-Element, dass sich in einem aus dem CMyDoc aufrufenden
    Dialog befindet, mit Werten füllen. Es sollen mehrer Zeilen und Spalten gefüllt werden.

    Ich habe folgendes versucht:
    Bevor ich dlg.DoModal() aufrufe habe ich das eingefügt
    [
    CDlgArchiv dlg;
    CListCtrl* pList= (CListCtrl*)dlg.GetDlgItem(IDC_LIST_ARCHIV);
    pList->InsertItem(0,"");
    pList->SetItemText(0,1,"TEST");

    dlg.DoModal();
    ]
    Aber er bringt mir eine Fehlermeldung zu Laufzeit des Programms.
    Der Fehler bezieht sich auf die Zeile
    CListCtrl* pList= ....

    Habt Ihr ein Tip was ich da Falsch mache oder gibt es eine andere Lösung das Steuerelement zu füllen?

    Ich bedanke mich schon im Vorraus! 🙂



  • was du da machst is murks 😉

    füg in dein CDlgArchiv mit dem assistenten die funktion OnInitDialog ein und mach die sachen dort



  • Hi

    die Steuerelemente in einem Dialog werden erst erstellt, wenn InitDialog aufgerufen wird. InitDialog wird in DoModal aufgerufen. Somit kannst du erst die Steuerelemente manipulieren, wenn du DoModal aufgerufen hast.

    Grüße Rapha



  • Eine etwas unortodoxe Methode wäre:
    Lege eine Klasse an, in der du die Werte , die du brauchst, speicherst.
    mache z.B. ein template davon in der Dialogklasse, public und fülle die Variablen in deiner aufrufenden Dlg-Funktion.
    CList<CHelpModul,CHelpModul&> Listing;

    Es gibt dann auch den Weg der Windows-Messages, bin jetzt aber zu faul dazu


Anmelden zum Antworten