CSplitterWnd und CTreeView



  • Hallo,

    ich bin relativ neu in der MFC-Programmierung und habe folgendes Problem.
    Ich hab jetzt ein SDI in dem ich ein TreeView eingebaut habe. Dort hab ich auch den Baum befüllen können mit Hilfe von GetTreeCtrl().

    Jetzt hab ich ein neues Projekt gebaut und dort ein Splitterwindow eingesetzt. Eines der beiden Panes hab ich mit einem CTreeView belegt.
    Wie krieg ich jetzt einen Handle auf den Baum? GetTreeCtrl kann ich ja erst einsetzen, wenn ich auf die Pane komme, aber nur mit GetPane(1,0) funktioniert auch net...

    Hat jemand vielleicht einen Hinweis?

    Danke, Chris


  • Mod

    Die Frage ist von wo Du aus das Handle benötigst.
    Außerdem erzeugst Du doch, dass Objekt. Wo lebt den das Objekt d.h. die Member-Vaiable, die das Control repreesentiert. Mit dieser Variablen hast Du auch Zugriff auf das Control.



  • Na ja ich hab mir mal eine SDI-Anwendung mit Doc/View gebaut und dem Assistenten angegeben er solle als Basisklasse CTreeView nehmen.
    In der View-Klasse hab ich dann nach dem CTreeView::OnInitialUpdate(); meinen Code eingehckt wie ich das aus einer Dialogfeldbasierenden Anwendung gewöhnt bin und das CTreeCtlr hab ich einfach bekommen indem ich GetTreeCtrl() verwendet habe.

    So das selbe Spiel wollte ich jetzt mit einer gesplitteten Anwendung machen. Also wieder SDI mit Doc/View usw.
    Allerdings hab ich diesmal in der MainFrame-Klasse in der OnCreateClient Methode ein Static Splitter Window und der Einfachheit halber die View-Klasse zweimal eingebaut. Das stellt er auch dar.
    In der View Klasse hab ich dann das OnInitialUpdate reingebaut und genau denselben Kram wie im anderen Beispiel eingefügt. Keine Fehlermeldung, kein Absturz, aber auch kein Baum...



  • So mittlerweile hab ich den Fehler gefunden.
    Ich hab beim ändern der Ableitung der Klasse (vorher CView anschließend CTreeView) nicht alle Referenzierungen geändert, hatte zwei übersehen.
    Kaum waren alle CView durch CTreeView ersetzt gings...

    Trotzdem Danke...


Anmelden zum Antworten