C++/(MFC)트리 컨트롤 몇 번째 아이템인지 조회


MFC CTreeCtrl은 선택된 아이템이 몇 번째 인덱스를 가지는지 바로 알 수 있는 방법이 없다.
대신 다음 방법으로 인덱스를 얻을 수 있다.

  1. void CTestDlg::OnTvnSelchanged(NMHDR *pNMHDR, LRESULT *pResult)
  2. {
  3.     LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
  4.     // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
  5.     int index = 0;
  6.     HTREEITEM hItem = m_treeCtrl.GetSelectedItem();
  7.     HTREEITEM hChild = m_treeCtrl.GetChildItem(NULL);
  8.     while (hChild)
  9.     {
  10.         if (hChild == hItem) break;
  11.         hChild = m_treeCtrl.GetNextItem(hChild, TVGN_NEXT);
  12.         ++index;
  13.     }
  14.     // index 사용
  15.     // ...
  16. }

이 글에는 0 개의 댓글이 있습니다.