Добавить значок для определенных элементов дерева в дереве (CTreeCtrl) в MFC

Можем ли мы добавить иконки для определенных элементов дерева?

Я добавляю элементы со значком, используя следующую функцию:

HTREEITEM InsertItem(LPCTSTR lpszItem,int nImage,int nSelectedImage,HTREEITEM hParent = TVI_ROOT,HTREEITEM hInsertAfter = TVI_LAST);

Чтобы пропустить значок для элемента, я использую значение -1 для nImage а также nSelectedImage, При этом значок не появляется, а место появляется.

2

Решение

Вы смотрели на CTreeCtrl :: SetItem?

Проще всего заполнить и передать 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 в TVIF_IMAGE и укажите iImage значение.

Для начала вам нужно создать CImageList объект, который остается в силе в течение срока действия CTreeCtrl, Вы обычно добавляете его в класс как переменную. Пример:

m_imgList.Create(IDB_BMP_CHECK_IMAGELIST, 16, 10, 0x0000FF00);

После инициализации вы можете позвонить CTreeCtrl :: SetImageList. Пример:

m_treeCtrl.SetImageList(&m_imgList, LVSIL_SMALL);

После этого вы можете использовать значения индекса изображения.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]