본문 바로가기
프로그래밍/Windows

how to create ListView on Visual C++

by 즉흥 2015. 5. 20.
728x90
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <CommCtrl.h>
HWND hList;
 
void MakeProcListView(HWND hWnd){
    LVCOLUMN COL;
    LVITEM Li;
 
    hList = CreateWindow(WC_LISTVIEW,
        NULL,
        WS_CHILD | WS_VISIBLE | WS_BORDER | LBS_NOTIFY |
        LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL,
        00250200,
        hWnd,
        (HMENU)hProcList,
        g_hInst,
        NULL);
 
    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 = 50;
    COL.pszText = L"PID";
    COL.iSubItem = 0;
    ListView_InsertColumn(hList, 0, &COL);
 
    COL.cx = 200;
    COL.pszText = L"프로그램명";
    COL.iSubItem = 1;
    ListView_InsertColumn(hList, 1, &COL);
 
    //세팅
    Li.mask = LVIF_TEXT;
    Li.state = 0;
    Li.stateMask = 0;
    Li.iSubItem = 0;
    Li.pszText = 0;
    
    Li.iItem = 0;
    ListView_InsertItem(hList, &Li);
    ListView_SetItemText(hList, 00, (LPWSTR)L"test1");
    ListView_SetItemText(hList, 01, (LPWSTR)L"test2");
 
    Li.iItem = 1;
    ListView_InsertItem(hList, &Li);
    ListView_SetItemText(hList, 10, (LPWSTR)L"testa");
    ListView_SetItemText(hList, 11, (LPWSTR)L"testb");
}
cs




리스트 뷰에 오름차순, 내림차순 설정하게 하는 것도 있는데, 지금 만든거엔 그 기능이 필요 없어서 나중에 정리해야지.



//초기화

for(int i=ListView_GetItemCount(hList);i>=0;i--)

ListView_DeleteItem(hList,i);


이건 리스트 뷰 행 삭제 방법.


ListView_GetItemText(hList, i, j, buf, 16);

이건 리스트 뷰에 있는 값 불러오는 방법.


i행 j열의 데이터를 16 길이만큼 buf에 담는다.


ListView_GetItemCount()는 처음 써봤는데 좋다.


늘 리스트 뷰 행 개수 저장하는 변수를 따로 만들곤 했는데.



--------


시발 것. 

할 때마다 햇갈려서 좀 더 자세하게 적어 놓음.

 

 

https://msdn.microsoft.com/en-us/library/windows/desktop/bb774737(v=vs.85).aspx

 

리스트뷰 관련 메크로 함수들.


728x90
반응형

댓글