Develop
2013.04.23 15:32
[c++] 트리컨트롤 스텝 2 예제..
조회 수 6984 댓글 0
첨부 '2' |
---|
실행화면..
사용하기 앞서..
대화상자에 트리컨트롤을 붙이고 옵션을 설정합니다.
Styles에 에디트 기능을 사용하기 위해서 Edit labels를 선택하고, 선택된 아이템을 표시할 수 있게 하기 위해서 Show selection always를 선택합니다.
프로그램 설명..
TreeCtrl을 이용하여 텍스트 추가, 삭제, 변경의 기능을 구현한 예제에서 텍스트 앞에 이미지가 추가된 예제입니다.
추가를 하면 자식노드가 추가되고, 삭제를 하면 해당 핸들의 자식 노드까지 모두 제거됩니다.
변경은 선택된 노드에 편집가능 하도록 에디트박스가 생성됩니다.
소스 사용법...
TVINSERTSTRUCT구조체를 이용하여 아이템들을 구성하는 코드입니다.
TVINSERTSTRUCT data; // 부모가 될 트리를 지정한다. data.hParent = parm_parent; // 입력된 문자열을 정렬한다. data.hInsertAfter = TVI_SORT; // 텍스트만 삽입할건지...이미지를 삽입할건지 결정 data.item.mask = TVIF_TEXT; // 1부터 차례대로 지정된 아이콘을 불러와 삽입한다. data.item.iImage = 1; // 마우스로 선택시 그릴 아이콘 결정 data.item.iSelectedImage = 3; // 삽입될 문자열 지정 data.item.pszText = parm_text; // 삽입한다. return m_my_tree_ctrl.InsertItem(&data);
트리컨트롤 사용중에 엔터키를 입력해도 대화상자가 종료되지 않도록 처리하는 코드입니다.
CWnd *p_wnd = GetFocus(); CWnd *p_edit = m_my_tree_ctrl.GetEditControl(); // 트리컨트롤을 사용중에 엔터키를 입력해도 대화상자가 종료되지 않도록 처리하는 코드 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(); }
2이면 자식 노드가 보이는 상태이고 1이면 보이지 않는 상태를 얻기 위한 코드입니다.
if(pNMTreeView->action == 2){ m_my_tree_ctrl.SetItemImage(pNMTreeView->itemNew.hItem, 0, 2); }else{ m_my_tree_ctrl.SetItemImage(pNMTreeView->itemNew.hItem, 1, 3); } *pResult = 0;
주의 사항..
편집한 문자열이 적용될수 있도록 1을 설정합니다.
void CTestTreeCtrlDlg::OnEndlabeleditMyTree(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 1; }
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
393 | Develop |
[c] 프로그램 코드(c/c++)를 html 파일로 변환
![]() |
hooni | 2013.04.23 | 7697 |
392 | Develop |
[c] 전위 표기법으로 연산 예제..
![]() |
hooni | 2013.04.23 | 9325 |
391 | PPT |
[doc] 정보보호학술대회 논문지 ㅋㅋ
![]() |
hooni | 2013.04.23 | 12214 |
390 | Develop | [ajax] 샘플 코드와 한글처리에 대한 간단한 설명 | hooni | 2013.04.23 | 6877 |
389 | Etc | GSM에서 음성이 실리는 과정 요약.. | hooni | 2013.04.23 | 17591 |
388 | Develop | [js] 폼(form) 전송시 중복 클릭 방지 간단한 구문 | hooni | 2013.04.23 | 9330 |
387 | Develop | [js] 사진첩에 쓸 내용 - 마우스 오버로 바꾸기 | hooni | 2013.04.23 | 6365 |
386 | Database | [sql] 간단한 통계 서브쿼리 예제.. | hooni | 2013.04.23 | 15178 |
385 | Develop | [java] Sieve of Eratosthenes (에라토스테네스의 체) | hooni | 2013.04.23 | 9353 |
384 | Develop |
[c] 유닉스 프로그램에서 인수처리 해주는 getopt() 함수
![]() |
hooni | 2013.04.23 | 8093 |
383 | Develop |
[c] pcapdump 파일 분석 하는 프로그램.. ㅋㅋ
![]() |
hooni | 2013.04.23 | 6916 |
382 | Develop |
[php] 무조건 다운로드 받도록 header 세팅
![]() |
hooni | 2013.04.23 | 7424 |