1. Fw: Treeview w/Edit-Labels
- Posted by euman at bellsouth.net Jun 19, 2002
- 435 views
BTW, I forgot to mention that sequence tvitem_handle must be set to global sequence tvitem_handle before you try the demo I sent 5 minutes ago. Euman euman at bellsouth.net > include win32lib.ew > > object junk > > constant > MainWin = create( Window, "Treeview Edit Label Demo", 0, 1, 1, 492, 380, { > WS_DLGFRAME, WS_SYSMENU}) > ,TV = create(TreeView, "TreeView", MainWin, 10, 22, 464, 310, > > or_all({TVS_HASLINES,TVS_LINESATROOT,TVS_HASBUTTONS,TVS_EDITLABELS, > TVS_SHOWSELALWAYS}) ) > ,TVPopup = create( Popup, "", TV, 0, 0, 0, 0, 0 ) > ,TVItem1 = create( MenuItem, "Create a New", TVPopup, 0, 0, 0, 0, 0 ) > > constant > closefolder = addIcon( extractIcon( "clsdfold.ico" )) > ,openfolder = addIcon( extractIcon( "openfold.ico" )) > > procedure TVpopup(integer self, integer event, sequence parms) -- popup mnu > for TV > if parms[1] = WM_RBUTTONDOWN then > popup(TVPopup, parms[2], parms[3] ) > end if > end procedure > setHandler(TV, w32HMouse, routine_id("TVpopup")) > > function TVEdit(integer id, atom hWnd, atom wParam, atom lParam) > atom Edit_id > Edit_id = w32Func( xSendMessage, {getHandle(TV), TVM_GETEDITCONTROL, 0, 0 } > ) > w32Proc( xSetFocus, {Edit_id} ) > -- from here there needs to be a trap for end of edit, etc. > -- so we can save the info or dismiss. > return 0 > end function > junk = setNotifyHandler( TVN_BEGINLABELEDIT, routine_id("TVEdit")) > > sequence folders > folders = {} > folders &= addTVItem( TV, closefolder, closefolder, "Right Click in Treeview > for popup menu" , 0 ) > folders &= addTVItem( TV, closefolder, closefolder, "Item One" , folders[1] > ) > expandItem( 1 ) > > procedure AddFamily(integer self, integer event, sequence parms ) > integer len, index > > folders &= addTVItem( TV, openfolder, openfolder, "", folders[1] ) > len = length(folders) > index = folders[len] > junk = w32Func( xSendMessage, {getHandle(TV), TVM_EDITLABEL, 0, > tvitem_handle[index] } ) > end procedure > setHandler(TVItem1, w32HClick, routine_id("AddFamily")) > > WinMain( MainWin,Normal )