Программа пипчет до места создания подитемов, итем создаёться и отображаеться, новые итемы тоже добавляються,но вот подитемы какогоо хрена-нет!!! ПОМОГИТЕ! InsertRow proc rowWORD,lp_dataWORD 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
Как всегда нахожу ошибку быстрее, а может это и не ошибка Я не переопеределял маску параметров, и использовал другое сообщения для установки подитемов(LVM_SETITEMTEXT) InsertRow proc rowWORD,lp_dataWORD 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