CListCtrl FindItem LVFI_PARAM
I have a CCtrlList with 2 columns.
My data contains ID NAME and ADDRESS, NAME is the column 0 and ADDRESS
is column 1. ID I put it in the lParam. When I try to finditem based
on the ID, I always get -1 back. Anybody can help? The CListCtrl is
not sortable.
Please see the following code, notice the ???? comment:
m_myList is a CListCtrl
Insert ITEM function
int iRow = 0;
LVITEM item;
iRow = m_lstSelectedUnits.GetItemCount();
item.mask = LVIF_TEXT| LVIF_PARAM;
item.iSubItem = 0;
item.iItem = iRow;
m_myList.InsertItem(&item);
Update ITEM function
LVITEM item;
item.iItem = nRow;
item.mask = LVIF_TEXT| LVIF_PARAM;
item.iSubItem = 0;
item.pszText = (LPSTR)sName.c_str();
item.lParam = (LPARAM)nID;
m_myList.SetItemText(item.iItem, item.iSubItem, item.pszText);
m_myList.SetItemData(item.iItem, item.lParam);
item.mask = LVIF_TEXT;
item.iSubItem = 1;
item.pszText = (LPSTR)sAddr.c_str();
m_myList.SetItemText(item.iItem, item.iSubItem, item.pszText);
find ITEM function
if(m_myList.GetItemCount()==0) return -1;
LVFINDINFO toFind;
toFind.flags = LVFI_PARAM;
toFind.lParam = nTransmitPointID;
int nRow = m_myList.FindItem(&toFind, -1);
//???? nRow ALWAYS RETURN -1
LVITEM item;
for(int i=0; i< m_myList.GetItemCount(); i++)
{
int id = (int)m_myList.GetItemData(i);
//THIS WORKS and GETS THE ID
item.iItem = i;
item.iSubItem = 0;
item.mask = LVIF_PARAM ;
m_myList.GetItem(&item);
//?????THE item.lParam is not the lParam set in the
update function.
}
------------
thanks in advance
-rockdale