MFC에서 리스트 컨트롤(List Control)을 이용하는 예시로서 축약된 결과를 표로 표시하거나 또는 다양한 여러 항목들을 일괄적인 화면으로 표시하는데 이용된다. 이 내용은 embeddedclub.net에 예전에 올렸었던 게시물을 옮겨 놓은 문서이다. 거기다가 추가로 새로 검증을 하여 이미지와 내용을 추가하여 좀더 잊혀지지 않도록 재구성 하였다.

     

    1. MFC에서 다이얼로그 프로젝트를 생성한다.

     

    2. 다이얼로그에 리스트 컨트롤을 추가한다.

     

    3. 리스트의 속성에서 멤버 변수 명을 m_List로 설정한다.

      리스트 컨트롤에서 컨트롤키를 누르고 마우스 우클릭을 아래와 같이 제어변수를 추가할 수 있다. 이때 이름에서 m_List를 입력해주면된다.

     

      마침을 누르고 코드가 생성되면 Ctrl+Z를 눌러 생성된 코드를 취소 시키면 된다. 

     

    4. 소스 추가

      이제 다이얼로그 소스에서 OnInitDialog()의 중반쯤 "// TODO: 여기에 추가 초기화 작업을 추가합니다."가 표시되어있는데 그 아래에 코드를 추가한다. 추가할 내용은 아래와 같다. 

     

    (1) 리스트 항목 추가

      리스트는 총 10줄을 입력한다.

    // Addition ListControl
    	CString strItem = _T("");
    	for (int i = 0; i < 10; ++i)
    	{
    		strItem.Format(_T("%d"), i);
    		m_list.InsertItem(i, strItem, i);
    	}
    
    	LVITEM item;
    	::ZeroMemory(&item, sizeof(item));
    	item.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE;
    	item.pszText = _T("TEST ITEM");
    	item.iItem = 5;
    	item.iImage = 1;
    	item.state = LVIS_SELECTED | LVIS_FOCUSED;

     

     

     (2) 리스트 컬럼 추가

      각 컬럼의 이름은 아래와 같이 추가해준다. 

    	// 컬럼 추가
    	m_list.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);  // 격자 추가.
    	m_list.InsertColumn(0, _T("No"), LVCFMT_LEFT, 40);   // 0
    	m_list.InsertColumn(1, _T("Name"), LVCFMT_LEFT, 100); // 1
    	m_list.InsertColumn(2, _T("Kor"), LVCFMT_LEFT, 60);  // 2
    	m_list.InsertColumn(3, _T("Eng"), LVCFMT_LEFT, 60); // 3
    	m_list.InsertColumn(4, _T("Math"), LVCFMT_LEFT, 60);  // 4
    	m_list.InsertColumn(5, _T("Sum"), LVCFMT_LEFT, 60);  // 5
    	m_list.InsertColumn(6, _T("Avg"), LVCFMT_LEFT, 60);  // 5
    	m_list.ModifyStyle(LVS_TYPEMASK, LVS_REPORT);

     

     

    5. 빌드하여 출력

      각 col의 내용은 직접 입력하지 않았으니 대략 아래와 같이 출력된다. 

    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기