MFC: Как запретить сворачивание элементов CTreeCtrl?
|
|
Воскресенье, 14 Марта 2021 г. 22:47
+ в цитатник
MaIron: Алгоритм такой: в дереве, при добавлении разворачиваем ветки и не даём их свернуть.
Делаешь класс наследник от CTreeCtrl - и в нем меняешь обработку нажатий клавиш.
HTREEITEM CMainTree::AddItem(HTREEITEM hParent, LPCTSTR csItemName, HTREEITEM hInsAfter, int iSelImage, int iNonSelImage, long lParam)
{
HTREEITEM h_MainItm;
TV_ITEM tvItem;
TV_INSERTSTRUCT tvIns;
CString sText = csItemName;
tvItem.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
tvItem.pszText = sText.GetBuffer(sText.GetLength());
tvItem.cchTextMax = sText.GetLength();
tvItem.lParam = lParam;
tvItem.iImage = iNonSelImage;
tvItem.iSelectedImage = iSelImage;
tvIns.item = tvItem;
tvIns.hInsertAfter = hInsAfter;
tvIns.hParent = hParent;
h_MainItm = InsertItem(&tvIns);
//Разворачиваем ветку
Expand(hParent, TVE_EXPAND);
return h_MainItm;
}
Обработка действий.
void CMainTree::OnLButtonUp(UINT nFlags, CPoint point){
}
void CMainTree::OnLButtonDown(UINT nFlags, CPoint point)
{
CTreeCtrl::OnLButtonDown(nFlags, point);
}
BOOL CMainTree::PreTranslateMessage(MSG* pMsg)
{
return CTreeCtrl::PreTranslateMessage(pMsg);
}
Кода там прилично получится.
https://forum.sources.ru/index.php?showtopic=421252&view=findpost&p=3845373
Метки:
Visual C++ / MFC / WTL
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-