본문 바로가기
컴퓨터/MFC_API

CListCtrl의 Report 형식에서, 선택된 모든 항목 삭제하기

by adnoctum 2009. 12. 9.
CListCtrl을 Report 형식으로 사용하고 있을 때, 선택된 모든 항목을 제거하기 위해서는 다음과 같이 한다.

// [_lstReport] 는 CListCtrl 형의 변수이고, Report 형식으로 되어 있다.
POSITION pos = _lstReport.GetFirstSelectedItemPosition(); // 선택된 첫 번째 위치를 얻어 와서,
while(pos != NULL){ // 위치가 유효하다면,
    int nItem = _lstReport.GetNextSelectedItem(pos); // 그 위치에 해당하는 item의 index 를 얻고,
    _lstReport.DeleteItem(nItem); // 그 item 을 지운다.
    pos = _lstReport.GetFirstSelectedItemPosition(); // 선택된 첫번째 위치를 다시 얻어 온다.
}


while 문 안에서 [pos] 의 값을 갱신하는

pos = _lstReport.GetFirstSelectedItemPosition();

구문이 없다면 선택된 item 이 모두 삭제되지 않는다.



* 사용된 프로그램
+ GEOEditor