본문 바로가기
호구지책/C/C++/C#

[MFC] 리스트 컨트롤

by 하늘의흐름 2015. 8. 7.
반응형

안드로이드 리스트뷰랑 명칭이 헷갈렸었는데, MFC는 리스트컨트롤이라고 한다.

안드로이드는 JAVA이고, MFC는 C++이다. 


리스트 컨트롤에 아래처럼 옵션을 걸어주면, 열과 행에 선이 생긴다.


m_List.SetExtendedStyle(LVS_EX_GRIDLINES);

m_List.InsertColumn(1, _T("신 이름"), LVCFMT_CENTER, 80);
m_List.InsertColumn(2, _T("신 번호"), LVCFMT_CENTER, 100);
m_List.InsertColumn(3, _T("신 무기"), LVCFMT_CENTER, 80);
m_List.InsertColumn(4, _T("신 구분"), LVCFMT_CENTER, 80);
m_List.InsertColumn(5, _T("신 상태"), LVCFMT_CENTER, 160);
m_List.InsertColumn(6, _T("신 특기"), LVCFMT_CENTER, 100);

m_List.InsertItem(1,_T("1")); 
m_List.InsertItem(2,_T("1"));
m_List.InsertItem(3,_T("1"));
m_List.InsertItem(4,_T("1"));  


InsertColum은 제목을 넣는 것이고,

InsertItem은 행에 값을 넣는 것이다.

하지만 첫번째 열에만 값을 넣을 수 있다는 단점이 있다.


그래서 다음과 같은 코드를 사용해서 여러 열에 값을 넣는다.

m_List.SetItemText(0, 0, _T("제우스"));
m_List.SetItemText(0, 1, _T("001"));
m_List.SetItemText(0, 2, _T("번개창"));
m_List.SetItemText(0, 4, _T("맏아들"));
m_List.SetItemText(0, 5, _T("배고픔"));
m_List.SetItemText(0, 6, _T("바람피우기"));


이렇게 하여 여러 열에 값을 넣을 수 있다.

행을 바꾸려면, 0을 1로 해주면 된다.


헌데 Colum은 왜 0이 아니라 1부터 시작하는가?

원래는 0부터 시작해야 하지만, 정렬이 제대로 먹히지 않는 이슈가 있다.

(가운데 정렬을 적용해도 왼쪽정렬을 해버림.)

때문에 0을 쓰지 않고 1부터 사용한다.


반응형

'호구지책 > C/C++/C#' 카테고리의 다른 글

[C#] 프로그램 실행 아이콘 변경하기  (0) 2017.05.08
[C#] 바코드 라이브러리  (0) 2017.04.20
[MFC] CSstring 형변환 함수  (0) 2017.02.16
[MFC] 클래스 호출하기  (0) 2017.02.16
[C++] 32비트를 64비트로 포팅하기  (0) 2016.12.16
[VC6] 원격 디버깅  (0) 2016.12.08
[C++] vector 다루기  (0) 2015.09.23
비주얼스튜디오 단축키  (0) 2015.07.09

댓글