Dateiliste selber schreiben



  • Hi zusammen.

    Ich bin, wie ihr merkt, noch total-Anfänger 😉

    Ich will eine Strukturansicht schreiben, die mir alle Ordner der Festplatte in einem bestimmten Verzeichnis auflistet. das habe ich soweit auch geschafft. Mein Problem jetzt ist aber, dass ich den Pfad des Ordners ermitteln will, wenn der Benutzer auf ein Ordner klickt. ich fange dazu die WM_NOTIFY meldung ab, und hab dann ein Zeiger auf das ausgwählte Item, aber wie mache ich jetzt weiter?!

    Ich würde mich sehr freuen, wenn ihr mir helfen könntet 😕



  • in was für ein control listest du denn deine ordner auf ??

    du kannst z.b. bei einem CListCtrl die meldung LVN_ITEMCHANGED abfangen. die wird aufgerufen sobald ein eintrg ausgewählt wird (egal ob mit maus oder tastatur)



  • ja, das fange ich ja auch ab. das hab ich oben ja auch geschrieben...
    Aber wir kann ich dann weiter machen??? wie kann ich dann mithilfe dieses Items, auf das ich einen zeiger bekommen, den pfad ermitteln?



  • sorry, habs nicht gerafft 🙄

    guck mal in der MSDN unter 'CTreeCtrl'. da findeste sicherlich was



  • ja da werd ich halt nicht schlau draus.
    also, ich versuch es nochmal 🙂

    wenn ein neues element ausgewählt wird, dann wird ja eine WM_NOTIFY geschickt mit lParam=TVN_SELCHANGED. Die fang ich ab und habe dann einen Pointer auf das ausgewählte Item.

    tvn_tree = (LPNMTREEVIEW) lParam;
    HTREEITEM hItem_new = tvn_tree->newItem.hItem;
    

    ich könnte jetzt vielleicht über

    LPTSTR title = hItem_new.pszText;
    

    auf die Beschriftung des Elementes zu greifen, aber das kriege ich nicht umgewandelt in einen CString.

    Vielleicht mache ich es ja auch total falsch und ihr habt eine bessere Idee..!?!?!? zumindest komm ich grad gar nicht weiter!



  • Hi,

    wenn Du das Handle au das TreeItem schon hast, ist die ganze Sache ziemlich einfach, wenn Du Dir in der MSDN mal unter CTreeCtrl das Class-Member "GetItemText" anschaust.

    In Deinem Beispiel würde es so aussehen:

    HTREEITEM hItem_new = tvn_tree->newItem.hItem;
    
    CString testtext;
    
    testtext = GetTreeCtrl().GetItemText(hItem_new);
    

    Hoffe, das hilft Dir

    Gruss

    yeti


Anmelden zum Antworten