List view control problem
Posted on 1999-01-09
I am building a dialog box with 3 edit controls, a list view control in report view and 3 push buttons. With the buttons I want to "Add", "Change" and "Delete" items in the list view control, so for every button I have a button click event handler. See below my event handler for an "Add" button click :
// Retrieves the following data from the dialog box :
// CListCtrl m_lvcShareList;
// long m_lVolume;
// CString m_strDate;
// float m_fRate;
if ( UpdateData() != TRUE )
// Build a CTime object "time" out of m_strDate.
int iActItem, iItem;
lstrcpy( szText, ( LPCTSTR ) time.Format( "%d/%m/%Y" ) );
_stprintf( szText, "%f", m_fRate );
_strprint( szText, "%u", ( UINT) m_lVolume );
iItem = ? // THAT IS MY PROBLEM.
for ( int iSubItem = 0; iSubItem < 3; iSubItem++ )
lvItem.mask = LVIF_TEXT | ( iSubItem == 0 ? LVIF_IMAGE : 0 );
lvItem.iItem = ( iSubItem == 0 ) ? iItem : iActItem;
lvItem.iSubItem = iSubItem;
lvItem.pszText = szText[iSubItem];
lvItem.iImage = 0;
if ( iSubItem == 0 )
ASSERT( ( iActItem = m_lvcShareList.InsertItem( &lvItem ) )!= -1 );
ASSERT( m_lvcShareList.SetItem( &lvItem ) != -1 );
Question 1 :
According to my documentation iItem is a zero based index, but must these indexes be ordered starting from 0 and incremented by 1 each time a new ShareItem is added, or is it just a value that identifies an item in the control.
Question 2 :
When I write my handlers for the "Change" and "Delete" button clicks, how can I figure out which item in the list view is selected. A little bit of code would be very appreciated.
Thanks in advance for everyone that is willing to help me.