리스트뷰 - ListBox가 발전된 형태로 좀 더 깔끔하고 다양한 기능을 사용할 수 있다.
리스트뷰 함수정리
ListView_GetItemCount() : 등록된 항목의 개수
ListView_InsertItem() : 새 항목 등록
ListView_SetItem() : 항목의 정보를 변경(이미지 등)
ListView_SetItemText() : 항목의 문자열을 변경
ListView_DeleteItem() : 지정한 항목을 삭제
ListView_DeleteAllItems() : 전체 항목을 삭제
ListView_GetItemText() : 지정한 항목의 문자열을 얻어옴
ListView_GetNextItem() : 옵션에 해당하는 항목의 인덱스 반환
ListView_FindItem() : 제시한 조건과 일치하는 항목의 인덱스 반환
ListView_SetItemState() : 지정한 항목의 상태 변경(포커스 등)
LVCOLUMN 구조체 - LVCOLUMN 구조체에 헤더의 정보를 채운 뒤 LVM_INSERTCOLUMN 메시지 전송
LVITEM 구조체 - LVITEM 구조체에 항목의 정보를 채운 뒤 LVM_INSERTITEM 메시지 전송
typedef struct tagLVFINDINFOW {
UINT flags; :검색 형태를 지정하는 옵션
#include <windows.h>
#include <commctrl.h>
#define IDC_LISTVIEW 150
#define LVIF_TEXT 151
LVCOLUMN COL; //열 구조체
LVITEM LI; //항목 구조체
HWND hList;
void OnInitCOL(HWND hWnd)
{
hList = CreateWindow(WC_LISTVIEW,NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | LVS_REPORT, 150,18,240,60,hWnd,(HMENU)IDC_LISTVIEW,0,0);
ListView_SetExtendedListViewStyle(hList,LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
//리스트뷰 스타일 초기화
COL.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
COL.fmt = LVCFMT_LEFT;
COL.cx=80;
COL.pszText="가";
COL.iSubItem=0;
ListView_InsertColumn(hList,0,&COL);
//첫번째 : 해당 리스트 핸들
//두번째 : 몇번째 열인지
//세번째 : 해당 열의 초기화상태
COL.cx=80;
COL.pszText="나";
COL.iSubItem=1;
ListView_InsertColumn(hList,1,&COL);
COL.cx=80;
COL.pszText="다";
COL.iSubItem=2;
ListView_InsertColumn(hList,2,&COL);
}
void OnInitITEM()
{
LI.mask = LVIF_TEXT;
LI.iItem = 1; //행 (전체 화면 - 캡션포함)
LI.iSubItem = 0; //열
LI.pszText = "1"; //문자열 값
ListView_InsertItem(hList, &LI);
//초기화된 항목구조체 정보를 토대로 해당리스트에 삽입
ListView_SetItemText(hList, 0, 1, "2");
//첫번째: 해당 리스트 핸들
//두번째 : 행 (캡션 미 포함)
//세번째 : 열
//네번째 : 값
ListView_SetItemText(hList, 0, 2, "3");
LI.iItem = 2;
LI.pszText = "4";
ListView_InsertItem(hList, &LI);
ListView_SetItemText(hList, 1, 1, "5");
ListView_SetItemText(hList, 1, 2, "6");
LI.iItem = 3;
LI.pszText = "7";
ListView_InsertItem(hList, &LI);
ListView_SetItemText(hList, 2, 1, "8");
ListView_SetItemText(hList, 2, 2, "9");
}
결과
'API & MFC > API & 시스템프로그래밍' 카테고리의 다른 글
ATOM (0) | 2010.02.09 |
---|---|
간단한 DLL 예제 (1) | 2010.02.03 |
WM_USER And WM_APP (0) | 2010.02.02 |
레지스트리 (0) | 2010.02.02 |
o/s의 role (0) | 2010.01.28 |