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>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5