 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 19.09.2007, 14:37 Titel: [GELÖST] TreeView? |
|
|
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.  _________________ If hilfreicher_Beitrag then klick(location.here)
Klick
Zuletzt bearbeitet von csde_rats am 19.09.2007, 19:04, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 19.09.2007, 15:38 Titel: Ok, teilgelöst... |
|
|
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))) |
(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 |
|
 |
|
|
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.
|
|