안녕하세요! devBong입니다!
오늘은 MFC 트리 컨트롤 CTreeCtrl을 사용해보도록 할거예요!
이번 포스팅의 목차는 다음과 같습니다.
01. 트리 컨트롤 준비
02. 트리 변수 추가하기
03. 트리 아이템 추가하기
04. 프로그램 실행
트리를 사용하면 이런 식으로 표현이 가능합니다.
01. 트리 컨트롤 준비
그럼 트리 컨트롤를 먼저 추가하도록 해볼께요!
1. 먼저 프로젝트를 하나 생성합니다.
2. 앱 가운데 있는 "TODO: 여기에..." 문구를 삭제합니다.
3. 도구 상자를 클릭하여 트리 컨트롤을 끌어다가 앱에 붙여 넣습니다.
4. 창에 맞게 트리 컨트롤을 늘려줍니다.
그럼 이제 트리 컨트롤을 사용할 준비가 되었습니다.
02. 트리 변수 추가하기
트리를 사용하려면 먼저 트리 변수를 만들어 줘야 합니다.
1. 트리 컨트롤을 오른쪽 클릭 후 "변수 추가" 항목을 선택합니다.
2. 변수 추가 창에서 알맞게 변수 이름을 작성하고 마침을 눌러 변수를 추가합니다.
(보통 C++에서는 변수 앞에 m을 붙혀 변수를 만듭니다.)
3. 추가된 트리 변수는 해당 헤더 파일에서 찾을 수 있습니다.
03. 트리 아이템 추가하기
트리에 아이템을 추가해 봅시다.
- 버튼을 누르게 되면 아이템이 등록되도록 만들어 보겠습니다.
- 아이템 이름은 1부터 자동 증가하도록 하겠습니다.
1. 버튼을 도구 상자에서 추가하고 버튼 이름을 "아이템 추가"로 변경합니다.
2. 버튼 속성창에서 'OnBtnClick_AddItem' 함수를 추가하고 버튼을 연결 시켜줍니다.
3. 코드를 작성합니다.
//CCTreeCtrlDlg.h
class CCTreeCtrlDlg : public CDialogEx
{
public:
CCTreeCtrlDlg(CWnd* pParent = nullptr);
...
...
...
private:
int m_itemNo; //아이템 이름을 증가시키기위한 정수 변수
public:
CTreeCtrl m_TreeCtrl; //트리 변수
afx_msg void OnBtnClick_AddItem(); //버튼 클릭시 발생되는 이벤트 함수
};
//CCTreeCtrlDlg.cpp
BOOL CCTreeCtrlDlg::OnInitDialog() //다이얼로그 초기화 함수
{
...
...
...
m_itemNo = 1; // 아이템 이름이 1로 먼저 시작하도록 합니다.
return TRUE;
}
void CCTreeCtrlDlg::OnBtnClick_AddItem() // 버튼 클릭시 발생되는 이벤트 함수 정의
{
CString m_itemName; // 아이템 이름 위한 CString 변수
m_itemName.Format(_T("%d"), m_itemNo); // 정수값을 CString 형으로 변환
m_TreeCtrl.InsertItem(m_itemName, NULL, TVI_LAST); // 변환된 문자로 아이템 추가
m_itemNo++; // 자동 증가
}
*트리에 아이템을 넣는 함수를 잠시 살펴 가볼께요
InsertItem이라는 함수를 사용하여 아이템을 넣는데요. MSDN에서 이렇게 설명되어 있으며
다음과 같이 함수를 사용 할 수 있으며 모두 HTREEITEM이라는 클래스를 리턴합니다.
HTREEITEM InsertItem(LPTVINSERTSTRUCT lpInsertStruct);
HTREEITEM InsertItem(
UINT nMask,
LPCTSTR lpszItem,
int nImage,
int nSelectedImage,
UINT nState,
UINT nStateMask,
LPARAM lParam,
HTREEITEM hParent,
HTREEITEM hInsertAfter);
HTREEITEM InsertItem(
LPCTSTR lpszItem,
HTREEITEM hParent = TVI_ROOT,
HTREEITEM hInsertAfter = TVI_LAST);
HTREEITEM InsertItem(
LPCTSTR lpszItem,
int nImage,
int nSelectedImage,
HTREEITEM hParent = TVI_ROOT,
HTREEITEM hInsertAfter = TVI_LAST);
04. 프로그램 실행
디버그 모드로 프로그램을 실행해 봅시다.
아이템이 아주 잘 생성되는 것을 볼 수 있습니다.
잘 따라 하셨나요?
아주 기초적인 트리 컨트롤의 예제를 실습해 보았습니다.
트리 컨트롤을 사용하여 여러가지 UI 요소들을 만드실 수 있습니다. 예로 들면 디렉토리 뷰 나 폴더 뷰 같은 것들을 말이죠.
다음 시간에는 트리 컨트롤 심화 강의로 포스팅 진행해보겠습니다.
질문은 언제나 환영합니다~
'if ( Programming ) > c&cpp' 카테고리의 다른 글
[Qt] Qt로 Excel을 사용해 보자 - 1 설정편 (QtXlsxWrite / QXlsx) (0) | 2024.11.22 |
---|---|
[MFC] skipping non-radio button in group 에러 (0) | 2022.09.20 |
[MFC] 01 - MFC 프로젝트 만들기 (0) | 2022.08.29 |