본문 바로가기

old drawer/C, C++, MFC

[MFC] CListCtrl 을 사용한 내용 삽입

1. 컬럼을 추가한다.
2. Item을 추가한다.
3. SubItem을 추가한다.

컬럼을 추가해야, 컬럼에 텍스트를 설정해 넣을 수가 있다. 컬럼 추가는 다음과 같이 한다.

CListCtrl L;

L.InsertColumn(0, "Control...", LVCFMT_LEFT, 100);

L.InsertColumn(1, "HI...", LVCFMT_LEFT, 100);


첫 번째 인자는 추가할 컬럼이 어느 위치로 들어 가야 하는지를 나타낸다. 중간에 끼워 넣을 것이라면 zero-based 인덱스로 했을 때 어느 위치로 넣을 것인지를 인자로 넘겨 주면 된다. 두 번째 인자는 표시될 텍스트이다. 세 번째는 옵션이며, 네 번째 인자는 추가한 컬럼의 폭(pixel)이다.


Item을 추가해야, sub item을 추가할 수 있게 된다. Item은 0번부터 시작을 하고, sub item은 1번부터 시작을 한다. 우선 Item은 다음과 같이 추가한다.


L.InsertItem(0, "first");

L.InsertItem(1, "second");



subitem은, item의 index를 zero-based로 적고, subitem의 index는 1-based로 한다. 즉, item이 subitem의 index가 0번이라고 가정한다.

L.SetItemText(0,1,"child of first");

 
이상을 정리하면 다음과 같다.

+---------------------+---------------------+----------------------+
|  InsertColumn(0, )  |  InsertColumn(1, )  |  InsertColumn(2, )   |
+---------------------+---------------------+----------------------+
|    InsertItem(0, )  | SetItemText(0,1, )  |  SetItemText(0, 2, ) |
+---------------------+---------------------+----------------------+
|    InsertItem(1, )  | SetItemText(1,1, )  |  SetItemText(1, 2, ) |
+---------------------+---------------------+----------------------+
|    InsertItem(2, )  | SetItemText(2,1, )  |  SetItemText(2, 2, ) |
+---------------------+---------------------+----------------------+
|    InsertItem(3, )  | SetItemText(3,1, )  |  SetItemText(3, 2, ) |
+---------------------+---------------------+----------------------+