본문 바로가기

Visual C++/CListCtrl with Checkbox

MFC CListCtrl with Checkbox example

다음과 같은 방법을 사용하여 CListCtrl 상에 체크박스를 설정할 수 있다.

 

CListCtrl m_ListCtrl;

m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_CHECKBOXES);


체크박스를 생성하는 별도의 코드는 필요없고 별도의 컬럼을 생성해주는 것도 필요없다. 위와같이 설정하고 필요한 데이터 컬럼을 설정하면 컬럼의 첫번째 내용에 체크박스가 포함된다. 예를 들어 첫번째 컬럼에 순번이 출력되도록 지정했다면 순번 앞에 체크박스가 포함되어 나타난다.


CListCtrl 상의 체크박스의 체크여부는 다음과 같은 방법을 사용하여 확인할 수 있다

 

void SearchFormView::OnButtonClick()

{

    // TODO: Add your control notification handler code here

    int     nLen = m_ListCtrl.GetItemCount();


    CString str;

 

    // 전체 아이템을 검색해서 찾음

    for(int i=0; i < nLen; i++)

    {

        // 체크상태 확인

        if (m_ListCtrl.GetCheck(i))

        {

            // 5번째 서브아이템의 내용을 가져온다

            str = m_ListCtrl.GetItemText(i,0);

            AfxMessageBox(str);

        }

    }

}