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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MFC는 화면을 나눈 후 좌우 두 개의 대화상자, 즉 두 개의view 구역 관련 매개 변수로 나뉘어 설정한다.1. 모든 메뉴 막대 버튼을 CmainFrame 클래스로 정의하는 것이 좋습니다.메뉴 표시줄 단추를 다른view에 정의하고 다른view인터페이스를 클릭하면 해당 메뉴 항목이 비워지는 현상이 일어나지 않습니다.이 현상...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.