Develop
2013.04.23 15:32

[c++] 트리컨트롤 예제1 ㅋㅋ

Views 7173 Votes 0 Comment 0
Atachment
Attachment '2'
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

실행 화면..

treectrl1.gif


사용하기 앞서..

대화상자에 트리컨트롤을 붙이고 옵션을 설정합니다.

Styles에 에디트 기능을 사용하기 위해서 Edit labels를 선택하고, 선택된 아이템을 표시할 수 있게 하기 위해서 Show selection always를 선택합니다.


프로그램 설명..

TreeCtrl을 이용하여 텍스트 추가, 삭제, 변경의 기능을 구현한 예제입니다.

추가를 하면 자식노드가 추가되고, 삭제를 하면 해당 핸들의 자식 노드까지 모두 제거됩니다.

변경은 선택된 노드에 편집가능 하도록 에디트박스가 생성됩니다.


소스 사용법..

TVINSERTSTRUCT구조체를 이용하여 아이템들을 구성하는 코드입니다.

TVINSERTSTRUCT data;
  
// 부모가 될 트리를 지정한다.
data.hParent = parm_parent;

// 입력된 문자열을 정렬한다.
data.hInsertAfter = TVI_SORT;  

// 텍스트만 삽입할건지...이미지를 삽입할건지 결정 
data.item.mask = TVIF_TEXT;

// 삽입될 문자열 지정 
data.item.pszText = parm_text;

// 삽입한다.
return m_my_tree_ctrl.InsertItem(&data);

트리컨트롤 사용중에 엔터키를 입력해도 대화상자가 종료되지 않도록 처리하는 코드입니다.

if(p_wnd != NULL
    && ((p_edit != NULL && p_edit->m_hWnd == p_wnd->m_hWnd)
    || m_my_tree_ctrl.m_hWnd == p_wnd->m_hWnd)){
    
    if(p_edit != NULL){
        // 에디트가 생성되어 있다는 소리는 라벨을 편집중에 엔터키를 눌렀다는 뜻이다.
        // 따라서 편집을 종료할수 있도록 해당 컨트롤에 포커스 해제 메시지를 전송한다.
        p_edit->SendMessage(WM_KILLFOCUS);
    }
}else{
    CDialog::OnOK();
}

주의 사항..

편집한 문자열이 적용될수 있도록 1을 설정합니다.

void CTestTreeCtrlDlg::OnEndlabeleditMyTree(NMHDR* pNMHDR, LRESULT* pResult) 
{
    *pResult = 1;
}

?

List of Articles
No. Category Subject Author Date Views
169 Develop GPL, AGPL, MPL,.. 한눈에 보는 오픈소스SW 라이선스 file hooni 2014.10.14 1146
168 Develop [web] 더 빠른 웹을 위한 프로토콜, 'HTTP/2' file hooni 2014.10.20 1641
167 Develop [android] 가속도 센서를 이용한 흔듦(Shake) 감지 file hooni 2014.11.04 1898
166 Develop [ios] 스크린 캡쳐 (전원버튼 + 홈버튼) 호출 알아내기 hooni 2014.11.19 1556
165 Develop [ios] 비동기 블럭 코드 예제 hooni 2014.11.21 825
164 Develop ZBar 라이브러리를 이용한 바코드 스캔 앱 개발하기 file hooni 2015.01.01 1628
163 Develop [java] netty (비동기 이벤트 방식 네트워크 프레임워크) 사용법 #1 (server) 1 hooni 2015.01.02 2212
162 Develop [java] netty (비동기 이벤트 방식 네트워크 프레임워크) 사용법 #2 (client) hooni 2015.01.02 2039
161 Develop [android] 안드로이드 동영상 스트리밍 예제 2 hooni 2015.01.02 4815
160 Develop [ios] UIWebView를 이용한 로컬 HTML 파일 표시 file hooni 2015.01.02 1234
159 Develop [ios] UIView 계층구조 hooni 2015.01.03 1124
158 Develop [ios] Thread Loop 내에서 UI 업데이트 방법 hooni 2015.01.03 847
157 Develop [ios] Xcode를 사용해서 Static Library 만들기 (시뮬레이터 + 디바이스) file hooni 2015.01.03 3278
156 Develop [ios] iOS앱의 Xcode 빌드 과정 file hooni 2015.01.03 2276
155 Develop [ios] APNS에 사용할 인증서 만들기 (KeyChain에 있는 인증서 Export) file hooni 2015.01.03 891
154 Develop [ios] binary를 C코드로 변환 file hooni 2015.01.03 1527
Board Pagination Prev 1 ... 41 42 43 44 45 ... 53 Next
/ 53