0
我想顯示多個圖標到Treeview項目,但它不顯示所有的圖標,它只顯示一個。 我使用下面的代碼:如何將多個圖標添加到單個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項目顯示多個圖標?
請建議我該如何做到這一點。
感謝您的回覆... 在我的情況下,位圖是不同的圖標,所以我不認爲我可以將多個圖像相鄰。所以我認爲我需要放棄顯示多個圖像的計劃。 – Nikhil 2011-04-13 06:02:48
@Nikhil:嗯,你可以在內存中繪製各個圖標到位圖中,然後將該位圖加載到'ImageList'中。如果您不需要更改經常顯示的圖標,那就可以正常工作。例如,當您的應用程序首次加載時,您可以在一個新的內存位圖中將3個16x16圖標相鄰放置,然後創建一個48x16位圖,然後將該位圖分配給'ImageList'。但是,如果這不適合你,我肯定會放棄。我無法想象這樣一種情況:爲了獲取多個圖標,所有者繪製TreeView是值得的。 – 2011-04-13 06:11:00
我的Treeview可以包含成千上萬的項目,並且圖標對於每個Treeview項目可以是不同的。因此,在這種情況下,我覺得新內存位圖中的繪圖圖像會是一個代價高昂的操作? – Nikhil 2011-04-13 06:48:25