снятие фокуса с итема ListView

Тема в разделе "WASM.WIN32", создана пользователем cresta, 3 мар 2006.

  1. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Код (Text):
    1.     LOCAL lvi               :LVITEM
    2.    
    3.     invoke SetFocus,hList
    4.     invoke SendMessage,hList,LVM_GETNEXTITEM,-1,LVNI_SELECTED   ;находим SELECTED
    5.     mov    lvi.imask,LVIF_STATE
    6.     mov    lvi.iItem,eax
    7.     mov    lvi.iSubItem,0
    8.     mov    lvi.state,0h
    9.     mov    lvi.stateMask,LVIS_SELECTED
    10.     invoke SendMessage,hList,LVM_SETITEM,NULL,ADDR lvi      ;снимаем выделение
    11.     invoke SendMessage,hList,LVM_GETNEXTITEM,-1,LVNI_SELECTED   ;находим SELECTED - выделен прежний :(
    12.  


    Вот такой код. Должен снимать выделение с итема, но не снимает :dntknw: Код использовался в других проектах, работал нормально, а вот сейчас не снимает выделения.

    Может, что забыл? Хотя вроде все правильно.
     
  2. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    cresta

    Определись focused или selected. И поясни что должно произойти визуально.
     
  3. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    q_q

    это половина кода. Вторая (аналогичная) занимается фокусом (с тем же успехом). Визуально выделеный итем должен перестать выделяться, т.е. фон текста должен стать белым и рамка в виде пунктира вокруг итема должна исчезнуть.
     
  4. Android

    Android New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2003
    Сообщения:
    183
    Адрес:
    Ukraine
    Я делал так
    Код (Text):
    1.  
    2.     mov eax,iItem
    3.     mov lvi.iItem,eax
    4.     mov lvi.state,0
    5.     mov lvi.stateMask,LVIS_SELECTED or LVIS_FOCUSED
    6.     invoke  SendMessage,hList,LVM_SETITEMSTATE,-1,addr lvi
    7.  
     
  5. Android

    Android New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2003
    Сообщения:
    183
    Адрес:
    Ukraine
    Это снятие фокуса со всех итемов
     
  6. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Пока именно так и делаю, но нужно не со всех, а с конкретного итема.
     
  7. Android

    Android New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2003
    Сообщения:
    183
    Адрес:
    Ukraine
    -1 - все итемы или конкретный итем (0,1,2...)


    Код (Text):
    1.  
    2.     mov lvi.state,0
    3.     mov lvi.stateMask,LVIS_SELECTED or LVIS_FOCUSED
    4.     invoke  SendMessage,hList,LVM_SETITEMSTATE,iItem,addr lvi
    5.