* 리스트 컨트롤의 스타일과 구성
- 리스트 박스와 달리 아이콘과 문자열로 항목이 구성
- 스타일에 따라 여러 문자열
- 컬럼 헤더를 버튼처럼 활용하여 항목을 정렬
- 항목의 아이콘은 스타일에 따라 다른 크기의 이미지를 가짐
- 여러 이미지 목록을 설정해서 사용
- 내부적으로 에디트 컨트롤과 헤더 컨트롤 내장
* 리스트 컨트롤의 생성과 활용
- InsertItem() 메서드는 네 가지로 다중 정의되며 가장 간단한 타입은 다음과 같다
m_List.InsertItem(0, "1th item");
- 첫 번째 인자는 추가할 항목의 인덱스이고, 두 번째 인자는 추가할 항목의 문자열
- 리스트 박스와 달리 문자열이 한 행을 차지하는 것이 아니라 정해진 범위에 표시'
* 스타일의 변경
- 리스트 컨트롤은 크게 세가지 (큰 아이콘, 작은 아이콘, 리포트) 스타일을 가질 수 있음
- 리스트 컨트롤의 스타일은 속성창에서 변경하는 방법과 윈도우 탐색기처럼 동적으로 변경하는 방법
* 리포트 스타일
- InsertColumn() 메서드는 리스트 컨트롤이 리포트 스타일일 때 각 컬럼의 제목이 되는 헤더 컨트롤을 추가하는 함수
- 첫 번째는 추가할 컬럼의 인덱스, 두 번째 인자는 컬럼의 문자열
- 세번째 인자는 컬럼 헤더의 문자열을 어떻게 맞출지 명시하는 것
- LVCFMT_LEFT는 왼쪽으로 맞추도록 함
- 네 번째 인자는 컬럼 헤더의 폭(픽셀 단위)
* ModifyStyle()
- 컨트롤 윈도우의 기본 스타일을 변경하는 함수
- 이 함수의 첫 번째 인자는 기존 스타일
- 두 번째 인자는 새로 적용할 스타일
- 윈도우 탐색기처럼 스타일을 동적으로 바꾸려면 이 함수를 호출하는 코드를 작성
* SetItemText()
- 리스트 컨트롤에 등록된 항목의 문자열을 변경
- 첫 번째 인자는 변경할 항목의 인덱스
- 두 번째 인자는 첫 번째 인자에 해당하는 항목의 하위 항목의 인덱스
- 세 번째 인자는 변경할 새 문자열이 저장된 버퍼의 주소
* 항목 문자열의 동적 변경
- 윈도우 탐색기에서 기존 선택된 파일이나 폴더 항목을 누르면 에디트 컨트롤이 출력되어 사용자가 문자열을 변경할 수 있도록 함
- 리스트 컨트롤이 내장 에디트 컨트롤을 갖고 있기 때문
- 리스트 컨트롤의 Edit Labels 속성을 True로 변경
- 그리고 에디트 컨트롤의 편집이 끝나면 리스트 컨트롤의 LVN_ENDLABELEDIT 통지 메시지 발생