void CDocSelectDlg::OnOK() { CTreeCtrl* pTree = (CTreeCtrl*)GetDlgItem(IDC_DOCLIST_TRE); HTREEITEM hItem = pTree->GetRootItem(); int i = 0; int nItemsDeleted = 0; while (hItem) { if (! pTree->GetCheck(hItem)) { m_aDocNames.RemoveAt(i - nItemsDeleted); nItemsDeleted++; i++; } hItem = pTree->GetNextSiblingItem(hItem); } CDialog::OnOK(); }