CTreeCtrl::GetItem 是 MFC 中 CTreeCtrl 类的一个公共方法,用于获取与树形控件中的某个树项(Tree Item)相关联的信息。

以下是该方法的基本信息:
BOOL CTreeCtrl::GetItem(LPTVITEM pItemInfo) const;

  •  参数 pItemInfo:指向 TVITEM 结构的指针,用于指定要获取信息的树项和存储相关信息的缓冲区。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, *LPTVITEM;

  - mask:用于指定要获取的信息的位标志。
  - hItem:标识要获取信息的树项的句柄。
  - state 和 stateMask:用于获取和设置树项的状态。
  - pszText 和 cchTextMax:用于获取树项的文本。
  - iImage 和 iSelectedImage:用于获取树项的图像索引。
  - cChildren:用于获取树项的子项数目。
  - lParam:用于获取树项的自定义数据。

  •  返回值:如果成功,则返回非零值;如果失败,则返回零。


使用示例:
// 假设 m_treeCtrl 是你的 CTreeCtrl 对象

// 准备 TVITEM 结构
TVITEM itemInfo;
itemInfo.hItem = m_treeCtrl.GetSelectedItem(); // 获取当前选中的树项
itemInfo.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE; // 指定要获取的信息

// 为文本设置缓冲区
CString strText;
itemInfo.pszText = strText.GetBuffer(MAX_PATH);
itemInfo.cchTextMax = MAX_PATH;

// 获取树项的信息
BOOL bResult = m_treeCtrl.GetItem(&itemInfo);

// 释放文本缓冲区
strText.ReleaseBuffer();

// 可以使用获取到的信息进行进一步的处理
if (bResult) {
    // 处理获取到的信息,例如输出文本和图像索引
    TRACE(_T("Text: %s, Image Index: %d, Selected Image Index: %d\n"),
        strText, itemInfo.iImage, itemInfo.iSelectedImage);
}

这个方法允许你获取树形控件中特定树项的相关信息,包括文本、图像索引、状态等。


转载请注明出处:http://www.zyzy.cn/article/detail/22896/MFC/CTreeCtrl