TVN_SELCHANGED




- 한 항목에서 다른 항목으로 선택이 변경 되었을 때 발생하는 메시지

 


현재 선택된 트리뷰의 아이템 얻기

LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
HTREEITEM hItem = pNMTreeView->itemNew.hItem;


즉, HTREEITEM hItem = pNMTreeView->itemNew.hItem;
hItem 으로 선택된 아이템(항목) 에 대한 작업을 하면 된다.



이벤트 메시지가 발생한 상황 판별
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);

pNMTreeView->action;

action 값을 조사하면 이벤트 메시지가 발생한 상황 판별 가능
TVE_EXPAND  :  아이템 확장 시
4096                :  Create된후에 포커스 받아서 Root가 선택되는 경우

0                    :   DeletaAllItems() 으로 호출됬을 경우
1                     : 내가 선택했을 경우

cf). 내 경험상 DeleteAllItems() 함수 호출 때 발생하지 않던데...



발생하는 경우

1. OnInitialUpdate() 함수에서 TreeCtrl 에 항목을 추가 하였을 때
   즉, 비어있는 TreeCtrl에 항목을 추가 시켰을 때 발생한다.
   (Create된후에 포커스 받아서 Root가 선택되는 경우)





cf) NMTREEVIEW 구조체 정보
    MSDN : http://msdn.microsoft.com/en-us/library/bb773411(VS.85).aspx


Posted by six605
,