[List View] Хоть убей не создаёться SUBITEM

Тема в разделе "WASM.BEGINNERS", создана пользователем devillsd, 17 дек 2008.

  1. devillsd

    devillsd New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2008
    Сообщения:
    131
    Программа пипчет до места создания подитемов, итем создаёться и отображаеться, новые итемы тоже добавляються,но вот подитемы какогоо хрена-нет!!! ПОМОГИТЕ!
    InsertRow proc row:lol: WORD,lp_data:lol: WORD
    LOCAL lvi:LV_ITEM
    LOCAL buff[20]:BYTE
    mov lvi.imask,LVIF_TEXT+LVIF_PARAM
    push row;
    pop lvi.iItem
    mov lvi.iSubItem,0;
    push row
    pop lvi.lParam
    add lp_data,04h
    invoke wsprintf,addr buff,addr strf,lp_data
    lea eax,buff
    mov lvi.pszText,eax
    invoke SendMessage,hListView, LVM_INSERTITEM,0, addr lvi
    mov lvi.imask,LVIF_TEXT
    inc lvi.iSubItem
    invoke wsprintf,addr buff,addr strf,lp_data
    lea eax,buffer
    mov lvi.pszText,eax
    mov lvi.lParam,NULL
    invoke SendMessage,hListView,LVM_SETITEM, 0,addr lvi
    ret;Возвращение из процедуры
    InsertRow endp
     
  2. devillsd

    devillsd New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2008
    Сообщения:
    131
    Как всегда нахожу ошибку быстрее, а может это и не ошибка
    Я не переопеределял маску параметров, и использовал другое сообщения для установки подитемов(LVM_SETITEMTEXT)
    InsertRow proc row:lol: WORD,lp_data:lol: WORD
    LOCAL lvi:LV_ITEM;Структурра параметров для элемента строки
    LOCAL buff[20]:BYTE;локальный буффер
    mov lvi.imask,LVIF_TEXT or LVIF_PARAM
    push row;
    pop lvi.iItem;Номер строки в который нужно добавить информацию
    mov lvi.iSubItem,0;Это итем
    push row;Помещяем в стек номер строки
    pop lvi.lParam;Помещяем сюда номер строки для дальнейшего поиска нужной информации
    mov eax,lp_data
    add eax,04h
    mov eax,[eax]
    invoke wsprintf,addr buff,addr strf,eax
    lea eax,buff;помещяем в eax указатель буфер
    mov lvi.pszText,eax;Копируем указатель
    invoke SendMessage,hListView, LVM_INSERTITEM,0, addr lvi;Вставляем элемент в строку
    inc lvi.iSubItem
    mov eax,lp_data
    add eax,04h
    mov eax,[eax+4]
    invoke wsprintf,addr buff,addr strf,eax
    invoke SendMessage,hListView, LVM_SETITEMTEXT,0, addr lvi;Вставляем элемент в строку
    inc lvi.iSubItem
    mov eax,lp_data
    add eax,04h
    mov eax,[eax+8]
    invoke wsprintf,addr buff,addr strf,eax
    invoke SendMessage,hListView, LVM_SETITEMTEXT,0, addr lvi;Вставляем элемент в строку
    inc lvi.iSubItem
    mov eax,lp_data
    add eax,04h
    mov eax,[eax+0ch]
    invoke wsprintf,addr buff,addr strf,eax
    invoke SendMessage,hListView, LVM_SETITEMTEXT,0, addr lvi;Вставляем элемент в строку
    inc lvi.iSubItem
    mov eax,lp_data
    add eax,04h
    mov eax,[eax+010h]
    invoke wsprintf,addr buff,addr strf,eax
    invoke SendMessage,hListView, LVM_SETITEMTEXT,0, addr lvi;Вставляем элемент в строку
    inc lvi.iSubItem
    mov eax,lp_data
    add eax,04h
    mov eax,[eax+014h]
    invoke wsprintf,addr buff,addr strf,eax
    invoke SendMessage,hListView, LVM_SETITEMTEXT,0, addr lvi;Вставляем элемент в строку
    ret;Возвращение из процедуры
    InsertRow endp