Как добавить несколько значков в отдельный элемент TreeView? - PullRequest
0 голосов
/ 13 апреля 2011

Я пытаюсь отобразить несколько значков для элемента Treeview, но он отображает не все значки, а только один.Я использую следующий код:

CImageList m_imageState;
m_cTree.m_imageState.Create(16, 16, ILC_MASK, 0, 4);
m_cTree.m_imageState.Add(&bm, RGB(255,255,0));
m_cTree.m_imageState.Add(&bm2, RGB(255,0,255));
m_cTree.m_imageState.Add(&bm, RGB(255,255,0));
m_cTree.m_imageState.Add(&bm1, RGB(0,255,255));
m_cTree.SetImageList( &(m_cTree.m_imageState), TVSIL_NORMAL ); 

Но когда я вижу Treeview, элемент отображает только один значок.Можно ли отобразить несколько значков с элементом Treeview?

Подскажите, пожалуйста, как мне это сделать.

1 Ответ

1 голос
/ 13 апреля 2011

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

Единственный способ отображения нескольких значков на элементе - это рисунок владельца . Это довольно трудная задача для TreeView элемента управления, не так просто, как владелец, создающий кнопку или элемент управления меткой. Убедитесь, что вам действительно нужна эта функциональность, и подумайте, есть ли лучший способ отображения соответствующей информации для ваших пользователей.

Кроме того, вы можете создавать собственные растровые изображения, которые объединяют несколько изображений рядом друг с другом, и добавлять их в ImageList. Получающиеся изображения будут шире, чем они высоки, но элемент управления не заботится: он будет отображать изображения любого размера, которые вы укажете, при условии, что все изображения в списке изображений имеют одинаковые размеры. Это определенно хак, но это может сработать, в зависимости от ваших потребностей.

...