Treeview w/Edit-Labels

new topic     » topic index » view thread      » older message » newer message

Hello all,

Im experimenting with Treeview w/Edit-Labels and provide a snippet of code
(below)
There are issues with this, first, windows explicitly creates the edit control
and you can obtain the handle to this edit control but Im not sure how to add
this
control to our housekeeping sequences so I can subclass or control the edit
controls
behavior. Any ideas? Also, how would I (from my subclassed edit control) send
info
back to my treeview so I can stop the edit process I setup in the treeview
control.
There are several parameters that need to be considered if the user of the
program
sets the focus to another control or either wants to save the edit or cancel.
This is
a pretty safisticated process. "Im hoping someone has code already"

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 )

Euman
euman at bellsouth.net

==================================================================
The information contained in this message may be confidential 
and is intended to be exclusively for the addressee. Should you 
receive this message unintentionally, please do not use the contents 
herein and notify the sender immediately by return e-mail.
==================================================================

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu