리스트 컨트롤은 목록 형식의 컨트롤로, 리스트박스와 약간 다른 점이 있습니다. 예를 들어 상단에 열 제목을 추가하는 등의 동작이 가능합니다. 이번에는 리스트 컨트롤을 사용하는 방법에 대해 알아보겠습니다.




우선 대화상자에 리스트 컨트롤을 선택하고 적당하게 배치합니다.



Properties에서 View 항목을 Report로 바꾸어 줍니다.




바꾸어 주었으면 열의 헤더가 생긴 것을 확인할 수 있습니다.




리스트 컨트롤을 선택하고 우측 마우스를 클릭하여 변수 추가를 선택해 줍니다.




멤버 변수 추가 마법사에서 원하는 변수 이름을 적고 '마침'버튼을 클릭합니다.




그러면 DoDataExchange 함수에 빨간 박스와 같은 코드가 작성된 것을 볼 수 있습니다.



이후 InitDialog 함수에서 아래 코드와 같이 작성합니다.



// 헤더 설정

LV_COLUMN m_lCol; // 열의 헤더 부분을 담당합니다.


m_lCol.mask = LVCF_TEXT | LVCF_WIDTH; // 변경할 부분을 마스킹하여 설정합니다.


m_lCol.pszText = "테스트1"; // 출력될 문자열입니다.

m_lCol.cx = 100; // 출력될 가로 폭입니다.

m_cList.InsertColumn( 0, &m_lCol ); // 열의 번호와 구조체의 주소를 넘깁니다.


m_lCol.pszText = "테스트2";

m_lCol.cx = 100;

m_cList.InsertColumn( 1, &m_lCol );


// 값 삽입

LV_ITEM m_lItem;


m_lItem.mask = LVIF_TEXT;


m_lItem.pszText = "아이템1";

m_lItem.iItem = 0;

m_lItem.iSubItem = 0;

m_cList.InsertItem( &m_lItem );


m_lItem.pszText = "아이템2";

m_lItem.iItem = 1;

m_lItem.iSubItem = 0;

m_cList.InsertItem( &m_lItem );


// 비어 있는 열의 값 추가(2번째)

m_lItem.pszText = "아이템3";

m_lItem.iItem = 0;

m_lItem.iSubItem = 1;

m_cList.SetItem( &m_lItem );


m_lItem.pszText = "아이템4";

m_lItem.iItem = 1;

m_lItem.iSubItem = 1;

m_cList.SetItem( &m_lItem );




컴파일하면 이렇게 리스트가 뜨는 것을 볼 수 있습니다.

+ Recent posts