반응형
[MFC] List control
> 만들기
> 목록 만들기
> 행 추가
> 행 개수 가져오기
> 행값 가져오기
> 1 행 삭제
> 지우기
========================
> 만들기
1) 도구상자에서 리스트 컨트롤을 선택
3) 리스트 컨트롤의 속성에서, View 속성을 Report로 변경
4) List Control 의 멤버변수를 클래스마법사에서 추가
m_List1
> 목록 만들기
>> 리스트 컨트롤의 초기화 코드를 작성
void CLanMgrDlg::initList( CListCtrl *pLc )
{
CRect rt; // 리스트 컨트롤의 크기를 가져올 변수
pLc->GetWindowRect(&rt);
pLc->SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); // 리스트 컨트롤에 선표시 및 Item 선택시 한행 전체 선택
pLc->InsertColumn(1, TEXT("#"), LVCFMT_CENTER, 50 ); // 첫번째 LVCFMT_LEFT, LVCFMT_CENTER, LVCFMT_RIGHT
pLc->InsertColumn(2, TEXT("Mac"), LVCFMT_CENTER, 240 ); // 첫번째 LVCFMT_LEFT, LVCFMT_CENTER, LVCFMT_RIGHT
pLc->InsertColumn(3, _T("From"), LVCFMT_CENTER, 200); // 두번째
pLc->InsertColumn(4, TEXT("Others"), LVCFMT_LEFT, 750); // 세번째
}
BOOL CLanMgrDlg::OnInitDialog()
{
;
;
// init List
initList(&m_List1);
return TRUE; // return TRUE unless you set the focus to a control
}
> 행 추가
>> 현재 입력된 행의 갯수를 구하고, 그 다음 행부터 데이터를 채워나가는 코드입니다.
int num = m_List1.GetItemCount();
CString str;
str.Format(_T("%d"), num);
m_List1.InsertItem(num,str ); // (n, 0 ) 번째 내용
m_List1.SetItem(num, 1, LVIF_TEXT, TEXT("test"), NULL, NULL, NULL, NULL); // (n, 1 ) 번째 내용
str.Format(_T("HaHaHa"));
m_List1.SetItem(num, 2, LVIF_TEXT, str2 , NULL, NULL, NULL, NULL); // (n, 2) 번째 내용
> 행 개수 가져오기
int idx;
idx= m_List1.GetSelectedCount();
> 행값 가져오기
>> 현재 선택된 행의 위치를 구하고, 그 행 item 가져 오기.
CString cS1, cS2;
POSITION pos;
pos= m_List1.GetFirstSelectedItemPosition(); // 선택된 행의 위치 구함
int idx = m_List1.GetNextSelectedItem(pos); // 행의 위치를 int 형으로 변환
if( idx < 0) AfxMessageBox(_T("Select 1 at the list"));
else {
cS1 = m_List1.GetItemText(idx, 1); AfxMessageBox(cS1);
cS2 = m_List1.GetItemText(idx, 2); AfxMessageBox(cS2);
}
> 1 행 삭제
>> 현재 선택된 행의 위치를 구하고, 그 행을 삭제
POSITION pos;
pos= m_List1.GetFirstSelectedItemPosition(); // 선택된 행의 위치 구함
int idx = m_List1.GetNextSelectedItem(pos); // 행의 위치를 int 형으로 변환
m_List1.DeleteItem(idx); // 행 삭제
> 목록 지우기
m_List1.DeleteAllItems(); // 목록 행 말고, 모든 행 지우기
m_List1.DeleteColumn(0); // 첫째 열 지우기, 다 지울라면 열 개수 만큼 반복
반응형
'개발 > mfc' 카테고리의 다른 글
[mfc] ARP(Address Resolution 주소 확인 Protocol ) 보기 (0) | 2024.02.28 |
---|---|
[mfc] DLL 없이 static library 사용, (컴파일 에러 C1189) (0) | 2024.02.28 |
[MFC] Dialog 최소화, 최대화 버튼 만드는 법 (0) | 2024.02.20 |
mfc, enter, esc key 처리 (0) | 2024.02.13 |
mfc: CString 비교 - 작업중 (0) | 2024.01.18 |