首页 > 代码库 > 树控件DeleteAllItems之前先SelectItem(NULL)

树控件DeleteAllItems之前先SelectItem(NULL)

CTreeCtrl::DeleteAllItems 使用之前先SelectItem(NULL)

原因:DeleteAllItems之前若有TreeCtrl中某项为选中状态,会发送TVN_SELCHANGED消息,容易出错,导致最后几项或者某一项无法删除,停留在TreeCtrl树中。

解决方法:

1.SelectItem(NULL),然后

在TVN_SELCHANGED消息函数里记得写:

 HTREEITEM hItem = NULL;
 hItem = m_CabTree.GetSelectedItem();
 if (hItem == NULL)
 {
  *pResult = 0;
  return;
 }

2.DeleteAllItems