  | 
					
						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, 13: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, 18: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, 14: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.
  | 
   
 
     |