SysListView32

Тема в разделе "WASM.BEGINNERS", создана пользователем vg, 4 сен 2007.

  1. vg

    vg New Member

    Публикаций:
    0
    Регистрация:
    16 апр 2007
    Сообщения:
    475
    Есть SysListView32

    Код (Text):
    1.      invoke CreateWindowEx,0,addr ListViewClass,0,WS_CHILD or WS_VISIBLE or LVS_REPORT or LVS_SHAREIMAGELISTS,75,70,350,200,hwnd,0,hInstance,0
    2.      mov    hlist,eax
    3.      invoke SendMessage,hlist,LVM_SETEXTENDEDLISTVIEWSTYLE,0,LVS_EX_CHECKBOXES
    4.      mov    lvc.imask,LVCF_TEXT+LVCF_WIDTH
    5.      mov    lvc.pszText,offset Heading
    6.      mov    lvc.lx,250
    7.      invoke SendMessage,hlist,LVM_INSERTCOLUMN,0,addr lvc
    8.      mov    lvc.lx,100
    9.      mov    lvc.pszText,offset Heading
    10.      invoke SendMessage,hlist,LVM_INSERTCOLUMN,1,addr lvc
    11.      mov    lvs.imask,LVIF_TEXT or LVIF_STATE
    12.  
    13.      mov    lvs.state,8192
    14.      mov    lvs.stateMask,LVIS_STATEIMAGEMASK
    15.      mov    lvs.pszText,offset Text
    16.      invoke SendMessage,hlist,LVM_INSERTITEM,0,addr lvs
    17.      mov    lvs.imask,LVIF_TEXT
    18.      mov    lvs.iSubItem,0
    19.      mov    lvs.pszText,offset Text
    20.      invoke SendMessage,hlist,LVM_SETITEM,1,addr lvs
    Вопрос №1
    Почему не добавляется под-item?

    Вопрос №2
    Данный код не работает под Win98. Каким образом можно сделать список с CHECKBOXES под Win98?
     
  2. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    subitem равный нулю - это просто item, во втором случае ставь subitem=1;
     
  3. GMax

    GMax Member

    Публикаций:
    0
    Регистрация:
    3 июл 2006
    Сообщения:
    218
    По второму вопросу:
    В MSDN все написано
    P.S. В Win98 надо самому реакции прописывать
     
  4. vg

    vg New Member

    Публикаций:
    0
    Регистрация:
    16 апр 2007
    Сообщения:
    475
    RamMerLabs
    Так
    Код (Text):
    1.      mov    lvs.imask,LVIF_TEXT
    2.      mov    lvs.iSubItem,1
    3.      mov    lvs.pszText,offset schevent
    4.      invoke SendMessage,hlist,LVM_SETITEM,1,addr lvs
    тоже не работает

    GMax
    Это как?
     
  5. GMax

    GMax Member

    Публикаций:
    0
    Регистрация:
    3 июл 2006
    Сообщения:
    218
    Первый клик поставить галку, второй убрать
     
  6. vg

    vg New Member

    Публикаций:
    0
    Регистрация:
    16 апр 2007
    Сообщения:
    475
    Т. е. создать, что-то типа кнопки? А как тогда эту кнопку соединить со списком итемов? Кстати, итемы тоже пропадают при Win 98. Короче говоря, не совсем понимаю как это практически осуществить. Может есть пример?
     
  7. GMax

    GMax Member

    Публикаций:
    0
    Регистрация:
    3 июл 2006
    Сообщения:
    218
    Ну вопервых -- http://www.wasm.ru/article.php?article=1001031

    А чекбоксы это рисунки (Image), добавляются через ImageList
     
  8. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    в субботу приеду домой-выложу пример
     
  9. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    вот, юзай: (сорри, что на vb - первый пример, который нашёл)

    итем:
    Код (Text):
    1. Public Function ItemAdd(ByVal Item%, ByVal text$, ByVal Indent%, ByVal Icon%) As Boolean
    2.  Dim uLV As LVITEM
    3.  If (m_hListView) Then
    4.   With uLV
    5.    .iItem = Item
    6.    .lParam = Item
    7.    .pszText = text & vbNullChar
    8.    .cchTextMax = Len(text) + 1
    9.    .iIndent = Indent
    10.    .iImage = Icon
    11.    .mask = LVIF_TEXT Or LVIF_INDENT Or LVIF_IMAGE Or LVIF_PARAM
    12.   End With
    13.   ItemAdd = (SendMessageA(m_hListView, LVM_INSERTITEM, 0, uLV) > -1)
    14.  End If
    15. End Function
    субитем:
    Код (Text):
    1. Public Function SubItemSet(ByVal Item%, ByVal SubItem%, ByVal text$, ByVal Icon%) As Boolean
    2.  Dim uLV As LVITEM
    3.  If (m_hListView) Then
    4.   With uLV
    5.    .iItem = Item
    6.    .iSubItem = SubItem
    7.    .pszText = text & vbNullChar
    8.    .cchTextMax = Len(text) + 1
    9.    .iImage = Icon
    10.    .mask = LVIF_TEXT Or LVIF_IMAGE
    11.   End With
    12.   SubItemSet = CBool(SendMessageA(m_hListView, LVM_SETITEM, 0, uLV))
    13.  End If
    14. End Function