VB6, считать и установить флажок Check у итема в ListView
Формулировка задачи:
hi ALL
Пытаюсь сделать так:
Пытаюсь сделать так:
нихрена не получается ... каг сделать правильна?
Решение задачи: «VB6, считать и установить флажок Check у итема в ListView»
textual
Листинг программы
<font color="blue">Public</font> <font color="blue">Function</font> LVSetItemCheck(hwnd <font color="blue">As</font> <font color="blue">Long</font>, nItem <font color="blue">As</font> <font color="blue">Integer</font>, <font color="blue">ByVal</font> NewVal <font color="blue">As</font> <font color="blue">Boolean</font>) <font color="blue">As</font> <font color="blue">Boolean</font>
<font color="blue">Dim</font> pItem <font color="blue">As</font> LV_ITEM
<font color="blue">With</font> pItem
.mask = LVIF_STATE <font color="00AA00">'забыл софсем указать сначала, а это - важно </font>
.iItem = nItem
.StateMask = LVIS_STATEIMAGEMASK
.state = INDEXTOSTATEIMAGEMASK(Abs(NewVal) + <font color="darkblue"><b>1</b></font>)
<font color="blue">End</font> <font color="blue">With</font>
LVSetItemCheck = ListView_SetItem(hwnd, pItem)
<font color="00AA00">'</font>
<font color="00AA00">' nLvItem.mask = LVIF_STATE</font>
<font color="00AA00">' nLvItem.iItem = nItem</font>
<font color="00AA00">' nLvItem.StateMask = nMask</font>
<font color="00AA00">' nLvItem.state = NewVal</font>
<font color="00AA00">' LVSetItemCheck = LVSetItemState(ListView, nItem, INDEXTOSTATEIMAGEMASK(Abs(NewVal) + 1), LVIS_STATEIMAGEMASK)</font>
<font color="blue">End</font> <font color="blue">Function</font>
<font color="blue">Public</font> <font color="blue">Function</font> ListView_SetItem(hwnd <font color="blue">As</font> <font color="blue">Long</font>, pItem <font color="blue">As</font> LV_ITEM) <font color="blue">As</font> <font color="blue">Boolean</font>
<font color="00AA00">'Sets some or all of a tree-view item's</font>
<font color="00AA00">'attributes. Old docs say returns zero if</font>
<font color="00AA00">'successful or - 1 otherwise.</font>
<font color="00AA00">'New docs say returns TRUE if successful,</font>
<font color="00AA00">'or FALSE otherwise!</font>
ListView_SetItem = SendMessage(hwnd, LVM_SETITEM, <font color="darkblue"><b>0</b></font>&, pItem)
<font color="blue">End</font> <font color="blue">Function</font>
<font color="blue">Public</font> <font color="blue">Function</font> INDEXTOSTATEIMAGEMASK(iState <font color="blue">As</font> <font color="blue">Long</font>) <font color="blue">As</font> <font color="blue">Long</font>
<font color="00AA00">'Prepares the index of a state image so that a</font>
<font color="00AA00">'treeview control or listview control can use the</font>
<font color="00AA00">'index to retrieve the state image for an item.</font>
<font color="00AA00">'Returns the one-based index of the state image</font>
<font color="00AA00">'shifted left twelve bits. A common control</font>
<font color="00AA00">'utility macro.</font>
<font color="00AA00">'This macro is defined in Commctrl.h as:</font>
<font color="00AA00">'#define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)</font>
INDEXTOSTATEIMAGEMASK = iState * (<font color="darkblue"><b>2</b></font> ^ <font color="darkblue"><b>12</b></font>)
<font color="blue">End</font> <font color="blue">Function</font>