DynTabCtrl von Devil81-> Problem beim zugreifen vom HaupDlg auf TabDlg



  • Wie im Titel schon beschrieben versuche ich über meinen HauptDlg, in dem sich meine TreeCtrl befindet, auf die im Tab befindliche ListCtrl zugreifen aber weis jedoch nicht wie... D.h. ich möchte den Text des makierten Items in die ListCtrl schreiben.
    Ich hab schon alles mögliche versucht aber es kam leider nicht mehr als Compilerfehler oder Zugriffsverletzungen raus... 😞

    Vielen Dank schonmal für euer Mitdenken!

    Chris



  • Hm, hast du dir die neueste Version runtergeladen ?
    Ansonsten erhälst du mit GetTab(tabnummer) einen CDialog pointer
    den du dann in die entsprechende Klasse casten musst.

    Devil



  • Jip, sollte die neuste Version sein.
    Die GetTab() Funktion gibt mir auch einen pointer auf den Dlg zurück. Ich weis aber leider nicht genau wie ich dann auf ListCtrl zugreifen kann. Sorry aber bin noch nicht so fit in diesen Sachen.
    Hier mal der Quelltext mit dem ich den Eintrag in die ListCtrls machen will:

    void CAbiplanerDlg::OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult)
    	{
    	LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
    	CString str, szParent;
    	HTREEITEM htrItem = m_ctlTreeCtrl.GetSelectedItem(), htrItemParent = m_ctlTreeCtrl.GetParentItem(m_ctlTreeCtrl.GetSelectedItem());
    	str = m_ctlTreeCtrl.GetItemText(htrItem);
    	szParent = m_ctlTreeCtrl.GetItemText(htrItemParent);
        //hier soll dann der Eintrag in die ListCtrls der verschiedenen Tabs erfolgen (je nachdem welche Tab ausgewählt ist)
        }
    

    Wäre nett wenn du mir es nochmals etwas genauer erklären könntest...

    Danke schonmal!

    Chris



  • Du musst wissen, wo welches Tab ist, und dann dir mit GetTab(tabnr)
    den pointer holen und casten. Dann musst du über den pointer
    auf die membervariable des ListCtrls zu greifen.

    Devil



  • Gut... dann versuch ichs mal... Danke erstmal!!!



  • Hhmmm irgendwie bekomm ich das mit dem casten nicht hin....

    In CAbiplanerDlg ist die TreeCtrl und der dlg im Tab hast die Klasse CDlgTab1

    HTREEITEM htrItemParent, htrItem = ((CAbiplanerDlg*)->m_ctlTabCtrl.GetTab(0))->m_ctlTreeCtrl.GetSelectedItem();
    

    Wenn ich so mache findet er m_ctlTreeCtrl nich:

    HTREEITEM htrItemParent, htrItem = ((CAbiplanerDlg*)m_ctlTabCtrl.GetTab(0))->m_ctlTreeCtrl.GetSelectedItem();
    

Anmelden zum Antworten