<

MFC의 트리메뉴 컨트롤의 아이템 선택 이벤트 후 해당 선택된 아이템의 인덱스를 리턴하는 메소드가 없다.


편법으로 아이템 이름으로 찾는 방법도 있지만 코드가 길어지고 추가/수정이 복잡해진다.


구글링 결과 index를 구하는 방법을 찾았다.


OnTvnSelchanged 이벤트 메소드에서 child 아이템을 루프 태우면서 현재 선택된 item인지 체크하면서 증가 시키는 것이다.


이생각을 왜 못했는지..


코드의 일부는 아래와 같다. 전체는 출처로 이동해서 확인하길 바란다.


 
    int index = 0;
    HTREEITEM hItem = m_treeCtrl.GetSelectedItem();
    HTREEITEM hChild = m_treeCtrl.GetChildItem(NULL);
    while (hChild)
    {
        if (hChild == hItem) break;
        hChild = m_treeCtrl.GetNextItem(hChild, TVGN_NEXT);
        ++index;
    }
출처 : C++/(MFC)트리 컨트롤 몇 번째 아이템인지 조회


+ Recent posts