MFC 의 NMHDR, LPNMTREEVEW, TVITEM

3740 단어 MFC
트 리 제어 데이터 구조
트 리 컨트롤 을 사용 할 때 매우 중요 한 데이터 구조 두 가 지 를 알 아야 합 니 다 TVITEM 과 TVINSERTSTRUCT, 이전 데이터 구 조 는 트 리 가 제어 하 는 트 리 정 보 를 표시 하 는 데 사 용 됐 으 며, 다음 데이터 구 조 는 트 리 항목 을 데이터 제어 에 추가 하 는 데 필요 한 데이터 내용 을 정의 하 는 데 사용 되 었 다.그리고 NM 이 필요 합 니 다.TREEVIEW、 TV_DISPINFO 와 TVHITTESTINFO 의 세 가지 데이터 구 조 는 다음 과 같다.
① 기본 데이터 항목 구조
typedef struct _TV_ITEM {
UINT mask;//구조 구성원 유효성 차단 위치
HTREEITEM hItem;/데이터 항목 제어 핸들
UINT state;//데이터 항목 상태
UINT stateMask;/상태 유효성 차단 위치
LPSTR pszText;/데이터 항목 이름 문자열
int cchTextMax;/데이터 항목 이름 의 최대 길이
int iImage;/데이터 항목 아이콘 인덱스 번호
int iSelecteImage;/데이터 항목 아이콘 인덱스 번호 선택
int cChildren;//하위 항목 표지
LPARAM lParam;/프로그램 정의 32 비트 데이터
} TV_ITEM, FAR *LPTV_ITEM;
 
② 트 리 구조 삽입
typedef struct _TV_INSER TSTRUCT {
HTREEITEM hParent;/부모 항목 제어 핸들
HTREEITEM hInsertAfter;/트 리 항목 삽입 위치
TV ITEM item;/데이터 항목 의 구조
} TV_INSERTSTRUCT, FAR *LPTV_INSERTSTRUCT;
그 중 삽 입 된 위치 가 TVI 라면FIRST 또는 TVILAST 는 트 리 제어 의 맨 앞 이나 맨 뒤에 각각 삽입 합 니 다. TVI 라면SORT 는 삽 입 된 트 리 항목 을 적당 한 위치 에 자동 으로 삽입 합 니 다.
 
③ 트 리 제어 알림 메시지 구조
typedef struct _NM_TREEVIEW {
NMHDR hdr;/알림 메시지 핸들
UINT action;/알림 메시지 표시
TV ITEM itemOld;/원래 데이터 구조
TV ITEM itemNew;/새로운 데이터 구조
POINT ptDrag;//드래그 포인터
} NM_TREEVIEW;
 
④ 데이터 구 조 를 취득 하거나 설정
typedef struct _TV_DISPINFO { tvdi
NMHDR hdr;/알림 메시지 제어 핸들
TV ITEM item;/데이터 항목 구조
} TV_DISPINFO;
 
⑤ 포인터 테스트 데이터 구조
typedef struct _TVHITTESTINFO { tvhtst
POINT pt;//클 라 이언 트 영역 화면 좌표 포인터
UINT flags;/테스트 결 과 를 저장 하 는 변수
HTREEITEM hItem;/테스트 데이터 항목 구조
} TV_HITTESTINFO, FAR *LPTV_HITTESTINFO;
그 중에서 flags 테스트 결 과 는 다음 과 같은 값 일 수 있 습 니 다.
TVHT_ABOVE 는 고객 구역 위 에 있 습 니 다.
TVHT_BELOW 는 고객 구역 아래 에 있 습 니 다.
TVHT_NOWHERE 는 고객 구역 에서 마지막 항목 아래 에 있 습 니 다.
TVHT_ONITEM 은 트 리 항목 과 연 결 된 비트 맵 이나 탭 에 있 습 니 다.
TVHT_ONITEMBUTON 은 트 리 와 연 결 된 버튼 에 있 습 니 다.
TVHT_ONITEMICON 은 트 리 항목 과 연 결 된 비트 맵 에 있 습 니 다.
TVHT_ONITEMINDENT 는 트 리 와 연 결 된 온라인 에 있 습 니 다.
TVHT_ONITEMLABEL 은 트 리 항목 과 연 결 된 태그 에 있 습 니 다.
TVHT_ONITEMRIGHT 는 트 리 오른쪽 에 있 습 니 다.
TVHT_ONITEmstateicon 사용자 가 정의 한 상태 아이콘 에
TVHT_TOLEFT 는 고객 구역 왼쪽 에 있 습 니 다.
TVHT_TORIGHT 는 고객 구역 오른쪽 에 있 습 니 다.
NMHDR 은 하나의 구조 체 다.그 형식 은 다음 과 같다.
typedef struct tagNMHDR {     HWND hwndFrom;     UINT idFrom;     UINT code; } NMHDR;
hwndFrom 메 시 지 를 보 내 는 컨트롤 의 핸들 입 니 다.
idFrom 메 시 지 를 보 내 는 컨트롤 의 ID 입 니 다.
코드 는 메시지 알림 코드 입 니 다.
#define NM_TREEVIEW             NMTREEVIEW
NMTREEVEW 도 하나의 구조 체 다.그 형식 은 다음 과 같다.
typedef struct tagNMTREEVIEW {
NMHDR hdr; 
UINT action; 
TVITEM itemOld; 
TVITEM itemNew; 
POINT ptDrag; 
} NMTREEVIEW, FAR *LPNMTREEVIEW; 
hdr          NMHDR  。
action         。
itemOld         TVITEM  
itemNew         TVITEM  ,             ,oldpen,newpen    。
ptDrag             
 
         TVITEM,    :
typedef struct tagTVITEM{
UINT mask;
HTREEITEM hItem;
UINT state;
UINT stateMask;
LPTSTR pszText;
int cchTextMax;
int iImage;
int iSelectedImage;
int cChildren;
LPARAM lParam;
} TVITEM, FAR *LPTVITEM;
              
http://blog.sina.com.cn/s/blog_48e42dc90100kdte.html

좋은 웹페이지 즐겨찾기