Наткнулся на совершенно непонятную штуку. После того как выполняю TreeView_DeleteAllItems(hTree); В него (дерево) перестают добавляться итемы. Если же удалять итемы не полностью а частично, скажем оставляя рут, то все работает. Что именно я упустил?
Код (Text): HWND hTree = GetDlgItem(m_hDlg, IDC_TREE_TYPES); TVINSERTSTRUCT tvis; ZeroMemory(&tvis, sizeof(TVINSERTSTRUCT)); tvis.hParent = TVI_ROOT; tvis.hInsertAfter = TVI_LAST; tvis.item.mask = TVIF_TEXT; tvis.item.pszText = "Types"; TreeView_InsertItem(hTree, &tvis); При запуске, когда контрол пустой, рутовый элемент в него нормально добавляется. Если же перед добавлением поставить TreeView_DeleteAllItems(hTree); то элемент не добавляется.
irrona Ну да. Только тогда какой смысл макроса TreeView_DeleteAllItems если после него ничего вставить нельзя?
Я тебе один вещь скажу, только ты не обижайся. Когда я пользовал TreeView, то item-ы удалял так: 1) подсчитывал кол-во item-ов с помощью SendMessage(hTreeView,TVM_GETCOUNT,0,0). 2) в цикле удалял item-ы SendMessage(hTreeView,TVM_DELETEITEM,0,item) 3) подготавливал структуру TV_INSERTSTRUCT, в которой указывал TVINSERTSTRUCT tvis; tvis.hParent = NULL; tvis.hInsertAfter,TVI_ROOT; 4) вставлял parent-а по-новой parent=SendMessage(hTreeView,TVM_INSERTITEM,0,&tvis) 5) после этого, имея parent цеплял к нему child-ов tvis.hParent = parent; tvis.hInsertAfter,TVI_LAST; child=SendMessage(hTreeView,TVM_INSERTITEM,0,&tvis) прошу прощения за возможные ошибки - код транслировал с masm-а.