getTVChecked resolved...and other stuff
- Posted by Jonas Temple <jktemple at yhti.net> Dec 05, 2002
- 556 views
All, I figured out the problem with my routine to get a tree view item's checked state. The correct code is as follows along with a routine to set a tree view item's check state and a routine to set a list view item's check state. These can be copied right into win32lib.ew for any interested parties. Derek, could we have these added to the standard win32lib? Thanks! -- Beg CJT01 --/topic ListView Control --/proc setLVChecked( integer id, integer item, atom checked ) --/desc Sets the checked state for a /ListView Item -- /i id is the win32lib id for the list view. /n -- /i pRow is the listview item to check/uncheck. /n -- /i checked is the checked/unchecked state (<>0=checked,0=unchecked). /n global procedure setLVChecked( integer id, integer pRow, atom checked) atom LV_ITEM, state, mask mask = LVIF_STATE if checked then state = (2 * power(2, 12)) else state = (1 * power(2, 12)) end if LV_ITEM = struct_LVITEM( LVIF_STATE, pRow, 0, state, LVIS_STATEIMAGEMASK, 0, 0, 0 ) VOID = sendMessage( id, LVM_SETITEM, pRow-1, LV_ITEM ) release_mem(LV_ITEM) end procedure -- End CJT01 -- Beg CJT01 --/topic TreeView Control --/proc getTVChecked( integer item ) --/desc Returns the checked state for a /TreeView Item -- /i item is the integer returned from /addTVItem when the item was created. /n -- If the item was checked it returns True, else returns False /n global function getTVChecked( integer item ) atom TV_ITEM, state, lFlags, mask mask = or_all({TVIF_HANDLE, TVIF_STATE}) TV_ITEM = struct_TVITEM( mask, tvitem_handle[item], 0, TVIS_STATEIMAGEMASK, 0, 0, 0, 0, 0) VOID = sendMessage( tvitem_owner[item], TVM_GETITEM, 0, TV_ITEM ) state = fetch( TV_ITEM, TVITEM_state ) lFlags = (state / power(2,12)) release_mem(TV_ITEM) return floor(lFlags - 1) end function --/topic TreeView Control --/proc setTVChecked( integer item , atom checked) --/desc Sets the checked state for a /TreeView Item -- /i item is the integer returned from /addTVItem when the item was created. /n -- /i checked is the checked/unchecked state (<>0=checked,0=unchecked). /n global procedure setTVChecked( integer item, atom checked) atom TV_ITEM, state, lFlags, mask mask = or_all({TVIF_HANDLE, TVIF_STATE}) if checked then state = (2 * power(2, 12)) else state = (1 * power(2, 12)) end if TV_ITEM = struct_TVITEM( mask, tvitem_handle[item], state, TVIS_STATEIMAGEMASK, 0, 0, 0, 0, 0) VOID = sendMessage( tvitem_owner[item], TVM_SETITEM, 0, TV_ITEM ) release_mem(TV_ITEM) end procedure -- End CJT01