개발자 '쑥말고인절미'

[MFC] ListControl과 TreeControl 본문

STUDY/C++ & MFC

[MFC] ListControl과 TreeControl

쑥말고인절미 2022. 4. 20. 10:12

ListControl에서 데이터를 얻어오는 메소드

(CListCtrl형).GetItemText( int형, int형);

반환형 : CString형

첫번째 인자 : 가져올 데이터의 순서(?)

두번째 인자 : 가져올 데이터의 인덱스 넘버

CString m_Grade;
m_Grade = m_List.GetItemText(i, 0);
m_Grade = m_List.GetItemText(i, 1);

 

TreeControl에 데이터를 추가하는 메소드

(CTreeCtrl형).InsertItem( CString형, HTREEITEN형, (모르겠음));

반환형 : HTREEITEM형

최상위 트리 :  InsertItem(트리명(CString), NULL, NULL);

하위 트리 :  InsertItem(자식트리명(CString), 부모트리명(HTREEITEM), NULL);

HTREEITEM h_Grade, h_Name;
h_Grade = m_Tree.InsertItem(m_levelGrade, NULL, NULL); //최상위 트리
h_Name = m_Tree.InsertItem(m_levelName, h_Grade, NULL); //하위 트리

 

내가 사용한 부분

BOOL CPopup::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	CMainFrame *pFrame = (CMainFrame *)AfxGetMainWnd();
	CSeminar01View *pView = (CSeminar01View *)pFrame->GetActiveView();

	CString m_Grade, m_Name, m_Korean, m_Math, m_English;
	CString m_levelName, m_levelGrade, m_levelKorean, m_leveMath, m_leveEnglish;

	HTREEITEM h_Grade, h_Name, h_Korean, h_Math, h_English;
	//InsertItem(자식트리명(CString), 부모트리명(HTREEITEM), NULL);
	//최상위 트리이면 InsertItem(트리명(CString), NULL, NULL);

	int count = pView->m_List.GetItemCount();

	for (int i = 0; i < count; i++) {
		m_Grade = pView->m_List.GetItemText(i, 0);
		m_levelGrade.Format(_T("%s학년"), m_Grade);
		
		h_Grade = m_Tree.InsertItem(m_levelGrade, NULL, NULL);

		m_Name = pView->m_List.GetItemText(i, 1);
		m_levelName.Format(_T("%s"), m_Name);
		h_Name = m_Tree.InsertItem(m_levelName, h_Grade, NULL);

		m_Korean = pView->m_List.GetItemText(i, 2);
		m_levelKorean.Format(_T("국어 %s점"), m_Korean);
		h_Korean = m_Tree.InsertItem(m_levelKorean, h_Name, NULL);

		m_Math = pView->m_List.GetItemText(i, 3);
		m_leveMath.Format(_T("수학 %s점"), m_Math);
		h_Math = m_Tree.InsertItem(m_leveMath, h_Name, NULL);

		m_English = pView->m_List.GetItemText(i, 4);
		m_leveEnglish.Format(_T("영어 %s점"), m_English);
		h_English = m_Tree.InsertItem(m_leveEnglish, h_Name, NULL);
	}

	return TRUE;  // return TRUE unless you set the focus to a control
				  // 예외: OCX 속성 페이지는 FALSE를 반환해야 합니다.
}

 

참고링크

https://igotit.tistory.com/entry/VC-Tree-Control-%EC%82%AC%EC%9A%A9%EB%B2%95

 

MFC. CTreeCtrl. Tree Control . 트리 컨트롤 사용법.

개요. VC++ 에서 Tree Control사용법 정리. 기본 활용법. 1. 도구상자에서 Tree Control 을 대화상자에 배치하고 Tree Control 의 속성창에서 ID를 적절한것으로 설정. 2. 클래스 위저드 실행하여 멤버 변수추

igotit.tistory.com