TreeNode icons
BlitzPlus Forums/BlitzPlus Programming/TreeNode icons
| ||
I got these working in BlitzPlus: Structure TVITEM mask.l hItem.l state.l stateMask.l pszText.l cchTextMax.l iImage.l iSelectedImage.l cChildren.l lParam.l EndStructure InitCommonControls_() ProcedureDLL.l CreateImageList() ProcedureReturn ImageList_Create_(16,16,#ILC_COLOR16,2,4) EndProcedure ProcedureDLL ImageListAdd(hndImgList,hndimage) ImageList_Add_(hndImgList,hndimage,0) EndProcedure ProcedureDLL SetTreeViewNodeIcon(treeviewnode) hitem=PeekL(treeviewnode+28) hwnd=PeekL(treeviewnode+24) TVITEM.TVITEM TVITEM\hItem=hitem SendMessage_(hwnd,#TVM_GETITEM,0,TVITEM.TVITEM) TVITEM\mask=#TVIF_IMAGE+#TVIF_SELECTEDIMAGE TVITEM\iImage=1 TVITEM\iSelectedImage=1 SendMessage_(hwnd,#TVM_SETITEM,0,TVITEM.TVITEM) EndProcedure Const TV_FIRST = $1100 Const TVM_GETITEMRECT = (TV_FIRST + 4) Const TVM_SETIMAGELIST = (TV_FIRST + 9) Const TVM_HITTEST = (TV_FIRST + 17) Const TVM_SORTCHILDRENCB = (TV_FIRST + 21) Const TVM_GETITEMW = (TV_FIRST + 62) Const TVM_SETITEMW = (TV_FIRST + 63) Const TVM_INSERTITEMW = (TV_FIRST + 50) Const TVM_GETITEM = TV_FIRST + 62 Const TVM_SETITEM = TV_FIRST + 13 Const TVM_GETNEXTITEM = TV_FIRST + 10 Const TVM_GETITEMSTATE = TV_FIRST + 39 Const TVIS_EXPANDED = $20 Const TVGN_CARET = $9 Const TVM_GETITEM32A =(TV_FIRST+12) Const TVM_GETITEM32W =(TV_FIRST+62) Const TVGN_CHILD =4 Const TVM_GETCOUNT =(TV_FIRST+5) Const TVGN_NEXT =1 Const TVS_CHECKBOXES =$0100 Const GWL_STYLE = (-16) Const TVM_SELECTITEM =(TV_FIRST+11) Const TVM_SORTCHILDREN =(TV_FIRST+19) Const TVSIL_NORMAL = 0 Const TVSIL_STATE = 2 win=CreateWindow("",0,0,400,300) tree=CreateTreeView(0,0,200,200,win) root=TreeViewRoot(tree) node=AddTreeViewNode("test",root) node2=AddTreeViewNode("test2",node) dir$=CurrentDir() icon0=pbLoadImage(2,dir+"0.bmp") icon1=pbLoadImage(1,dir+"1.bmp") ;ChangeDir dir ilist=createimagelist() ImageListAdd(ilist,icon0) ImageListAdd(ilist,icon1) hwnd=QueryObject(tree,1) SendMessage hwnd,TVM_SETIMAGELIST,TVSIL_NORMAL,ilist SetTreeViewNodeIcon(node) Repeat : Until WaitEvent()=$803 Function SetTreeViewNodeIcon1(treeviewnode,index) item=PeekL(treeviewnode+28) hwnd=PeekL(treeviewnode+24) temp=CreateBank(40) tvitem=BankAddress(temp) SendMessage item,TVM_GETITEMW,0,tvitem For n=0 To BankSize(temp)/4-1 PokeInt temp,n*4,1 Next SendMessage item,TVM_SETITEMW,0,tvitem FreeBank temp End Function |