Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

[GELÖST] TreeView?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 19.09.2007, 14:37    Titel: [GELÖST] TreeView? Antworten mit Zitat

Hallöchen!
zur Zeit setzte ich mich mit TreeViews in Dialogen auseinander:
Code:
 Dim As TVINSERTSTRUCT Root
         Dim As TVITEM RootI
         RootI.mask=TVIF_TEXT
         RootI.hItem=NULL
         RootI.pszText=StrPtr("LOL")
         RootI.cchTextMax=3
         RootI.cChildren=0
         Root.hParent=TVI_ROOT
         Root.hInsertAfter=TVI_ROOT
         Root.item=RootI
         SendDlgItemMessage(hWin, IDC_TRV1, TVM_INSERTITEM, 0, Cast(LPARAM, VarPtr(Root)))

OK, jetzt habe ich den Root-Item "LOL", aber nun meine Fragen:
1) Wie finde ich heraus, welcher Item ausgewählt ist? Ich habe es in der Liste nicht gefunden.
2) Wozu dient in der TVITEM-Struktur, das Element "hItem"? Wird es beim Aufrufen von SendMessage() mit TVM_INSERTITEM gesetzt, braucht man es danach noch?
3) Wie lösche ich einen Untereintrag?
4) Wenn ich unter dem Root-Item(/Objekt) einen Zweig anfügen will, muss ich dann in der TVINSERTSTRUCT-Struktur den Wert von hParent auf den Wert der TVITEM.hItem des Root-Objekts setzten??


Leider werden TreeViews im Petzold überhaupt nicht behandelt, deswegen weiß ich auch soviel nicht. traurig
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick


Zuletzt bearbeitet von csde_rats am 19.09.2007, 19:04, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 19.09.2007, 15:38    Titel: Ok, teilgelöst... Antworten mit Zitat

OK, ich habe es jetzt "geschafft" ein Child einzufügen:
Code:
 Dim As TVINSERTSTRUCT Root
         Dim As TVITEM RootI
         RootI.mask=TVIF_TEXT Or TVIF_CHILDREN
         RootI.pszText=StrPtr("LOL")
         RootI.cchTextMax=3
         RootI.cChildren=1
         Root.hParent=TVI_ROOT
         Root.hInsertAfter=TVI_ROOT
         Root.item=RootI
         RootI.hItem=SendDlgItemMessage(hWin, IDC_TRV1, TVM_INSERTITEM, 0, Cast(LPARAM, VarPtr(Root)))
         Dim As TVINSERTSTRUCT Ch
         Dim As TVITEM Ch1
         Ch1.mask=TVIF_TEXT
         Ch1.pszText=StrPtr("LOL2")
         Ch1.cchTextMax=4
         Ch1.cChildren=1
         Ch.hParent=RootI.hItem
         Ch.hInsertAfter=RootI.hItem
         Ch.item=Ch1
         SendDlgItemMessage(hWin, IDC_TRV1, TVM_INSERTITEM, 0, Cast(LPARAM, VarPtr(Ch)))


vor Freude klatschen vor Freude klatschen Yahooo!!!! Yahooo!!!!

(Ich glaube, ich schreibe irgendwann nochmal ein richtig schön großes WinAPI Tutorial xD)

Das Augenmerk sei auf folgende Zeile gerichtet:
Code:
RootI.hItem=SendDlgItemMessage(hWin, IDC_TRV1, TVM_INSERTITEM, 0, CAST(LPARAM, VARPTR(Root)))

Dadurch wird das Element hItem der TVITEM Struktur des Root-Elements gütlig, und kann dann in folgender Zeile ein Child angewiesen bekommen:
Code:
Ch.hParent=RootI.hItem
         Ch.hInsertAfter=RootI.hItem


EDIT:
Jaaahh, wie geil ist das denn!?
Code:
Dim As HANDLE grm=(SendDlgItemMessage(hWin, IDC_TRV1, TVM_GETNEXTITEM, TVGN_CARET, 0))
         MessageBox(NULL, "WOW!" & grm, "LOL?", MB_OK)
         Dim As TVITEM G
         Dim As ZString*20 Lol
         G.hItem=grm
         G.mask=TVIF_TEXT
         G.pszText=StrPtr(lol)
         G.cchTextMax=20
         G.cChildren=1
         If SendDlgItemMessage(hWin, IDC_TRV1, TVM_GETITEM, 0, Cast(LPARAM, VarPtr(G))) = FALSE Then
            MessageBox(NULL,"fehl.", "hmm...",MB_OK)
         EndIf
         Dim As String lol2
         lol2=*G.pszText
          MessageBox(NULL, "WOW2!" & lol2 & G.pszText, "LOL2?", MB_OK)

_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz