The list box control class has a selection function SelItemRange().
This function, though missing in the CListCtrl class, is easily implemented.
// SelItemRange - Selects/Deselect a range of items // Returns - The number of new items selected // bSelect - TRUE to select, FALSE to deselect // nFirstItem - index of first item to select // nLastItem - index of last item to select int CMyListCtrl::SelItemRange(BOOL bSelect, int nFirstItem, int nLastItem) { // make sure nFirstItem and nLastItem are valid if( nFirstItem >= GetItemCount() || nLastItem >= GetItemCount() ) return 0; int nItemsSelected = 0; int nFlags = bSelect ? 0 : LVNI_SELECTED; int nItem = nFirstItem - 1; while( (nItem = GetNextItem( nItem, nFlags )) >=0 && nItem <= nLastItem ) { nItemsSelected++; SetItemState(nItem, bSelect ? LVIS_SELECTED : 0, LVIS_SELECTED ); } return nItemsSelected; }