CListCtrl



  • Hallo!

    Hab da mal ne Frage:
    Also das CListCtrl-Steuerelement und dessen Verwendung ist soweit klar.
    Bei einer Dialogfeldbasierenden Anwendung ist alles kein Problem, doch wenn ich
    in einer SDI - Anwendung, ein Dialog einfüge und darin dann das gleiche progge
    um eine Liste anzuzeigen, wie in der Dialogfeldbasierenden Anwendung, stürzt
    das Prog. bei einer Anweisung auf das Listen Steuerelement ab.

    Meine Frage: ? ... WIESO ... ?



  • ka

    zeig ma etwas code.



  • Ich starte den Dialog aus dem Menü
    hier ist der Code:

    /////////////////////////////////////////////////////////////////////////////
    // CMainFrame Nachrichten-Handler

    void CMainFrame::OnAnsichtStart()
    {
    MyDialog dlg;
    dlg.init(); // meine Initialiserungs Funktion für die Liste
    dlg.DoModal();

    }

    void MyDialog::init()
    {
    m_List.InsertColumn(0,"Text",LVCFMT_LEFT,200);
    ...
    ...
    ...
    }

    ich hatte mal die nachfolgenden Anweisungen alle rausgenommen um zu testen wann
    das Prog. abstürzt.
    Also das Prog. startet, wenn ich dann auf den Menü Eintrag gehe um den Dialog zu starten stürzt es ab.
    Was ich jetzt nicht verstehe ist warum es bei Dialogfeldbasierenden Anwendungen
    klappt (mit dem gleichen Code) und bei einer SDI Anwendung (auch im Dialogfeld)
    nicht?



  • naja, du darfst die dlg.init nicht aufrufen, bevor der dialog mit domodal angezeigt wird, da du in init auf das ListCtrl zugreifst, das zu dem Zeitpunkt aber ncoh nciht erstellt ist. Ruf deine init-FUnktion aus der OnInitDialog in CMyDialog auf.



  • Bei meiner Dialogfeldbasierenden Anwendung habe ich das auch so gemacht, aber bei meinem selbst erstellten Dialog in einer SDI Anendung habe ich keine OnInitDialog - Funktion oder ? Jedenfalls seh ich diese nicht.



  • Füg sie doch hinzu ... Macht man über den Klassenassistenten -> Funktion für die Nachricht WM_INITDIALOG hinzufügen: Tada! 🙂



  • JO DANKE!

    Hab ich jetzt auch grad entdeckt, ist mir irgentwie in meinen Überlegungen
    ganz entwichen...


Anmelden zum Antworten