어느 정리 잘된 블로그에서 퍼온 정보입니다. 정말 감사 ㅜㅜ
출처 : http://cafe.naver.com/thav1.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=486
1. ListView 설명
ListView는 ListCtrl을 가지고 있는 형태의 View 입니다.
Base class 를 CListView로 설정하면 사용이 가능합니다.
2. ListView 사용법
ListView 에 있는 ListCtrl 접근법은 다음과 같습니다.
GetListCtrl();
3. ListView COLUMN 추가하는 방법
3-1. LV_COLUMN 구조
typedef struct _LVCOLUMN {
UINT mask; // 형태
int cx; // 컬럼 가로 사이즈
LPTSTR pszText; // 컬럼 문자열
int cchTextMax; // 문자 최대 길이
int iSubItem; // 서브 아이템 번호
int iImage; // 이미지 번호
int iOrder; // 컬럼 순서 번호
} LVCOLUMN, FAR *LPLVCOLUMN;
3.2 ListView에 COLUMN 사용법
int i = 0X00;
int lvcaption_cx[] = { 20, 50, 50, 50, 50, 140, 140 };
char* lvcaption_text[] = { "컬럼1", "컬럼2", "컬럼3", "컬럼3", "컬럼5", "컬럼6", "컬럼7", "" };
LV_COLUMN lvColumn;
while(1)
{
if(lvcaption_text[i] == "") { break; }
lvColumn.mask = LVCF_TEXT | LVCF_FMT | LVCF_WIDTH | LVCF_SUBITEM;
lvColumn.fmt = LVCFMT_CENTER;
lvColumn.cx = lvcaption_cx[i];
lvColumn.pszText = lvcaption_text[i];
lvColumn.cchTextMax = strlen(lvcaption_text[i]);
GetListCtrl().InsertColumn(i, &lvColumn); //컬럼을 추가하는 부분입니다.
i++;
} /*-- end of while(1) --*/
4. ListView Item 추가하는 방법
4-1. LVITEM 구조
typedef struct _LVITEM {
UINT mask; // 형태
int iItem; // 아이템 번호
int iSubItem; // 컬럼 번호
UINT stateMask; // 현재 아이템 상태
LPARAM pszText; // 아이템 문자열
int cchTextMax; // 문자열 최대 길이
int iImage; // 그림 번호
LPARAM IParam; // 본 구조체의 IParam 포인터
int iIndent; // 선택시 그림 이미지 번호
} LVITEM, FAR *LPLVITEM
4-2. ListView에 Item 사용하는 방법
int j = 0X00;
int nThread = 5; // 출력 라인
CString jTemp;
LVITEM lvItem;
while(nThread)
{
if(j >= nThread) { break; }
jTemp.Format("%d", j+1);
lvItem.mask = LVIF_TEXT;
lvItem.iItem = j;
lvItem.iSubItem = 0;
lvItem.pszText = "아이템 등록";
GetListCtrl().InsertItem(&lvItem);
lvItem.mask = LVIF_TEXT;
lvItem.iItem = j;
lvItem.iSubItem = 1;
lvItem.pszText = "아이템 사용1";
GetListCtrl().SetItem(&lvItem);
lvItem.mask = LVIF_TEXT;
lvItem.iItem = j;
lvItem.iSubItem = 2;
lvItem.pszText = "아이템 사용2";
GetListCtrl().SetItem(&lvItem);
lvItem.mask = LVIF_TEXT;
lvItem.iItem = j;
lvItem.iSubItem = 3;
lvItem.pszText = "아이템 사용3";
GetListCtrl().SetItem(&lvItem);
lvItem.mask = LVIF_TEXT;
lvItem.iItem = j;
lvItem.iSubItem = 4;
lvItem.pszText = "0";
GetListCtrl().SetItem(&lvItem);
lvItem.mask = LVIF_TEXT;
lvItem.iItem = j;
lvItem.iSubItem = 5;
lvItem.pszText = "아이템 사용4";
GetListCtrl().SetItem(&lvItem);
lvItem.mask = LVIF_TEXT;
lvItem.iItem = j;
lvItem.iSubItem = 6;
lvItem.pszText = "아이템 사용5";
GetListCtrl().SetItem(&lvItem);
j++;
}
4-3. 부가 설명
* GetListCtrl().InsertItem(&lvItem); -> 아이템 페이지 등록, 첫번째 아이템 등록
* GetListCtrl().SetItem(&lvItem); -> 두번째 아이템 등록
5. 전체 Item 삭제하기
GetListCtrl().DeleteAllItems();
-- 차후 정리 목록 --
6. 첫번째 아이템 리스트에 이미지 넣기
7. 컬럼간에 구분 선 적용하기
8. 컬럼 제목 누를때 정렬되기
9. Item 선택할때 이벤트 발생하기
10. Item 더블 클릭 할 경우 수정하는 기능 넣기