
Introduction
This is an example of how to enable colors in Tree Controls. Actually, I saw a similar article from a friend, but it was based on CTreeView
, not on CTreeCtrl
which I actually needed.
Features
Below are some of the many features that CTreeCtrlEx
has:
- Change the item color
- Change the item font
- Make the item bold
- Get the item color
- Get the item font
- Get if item is bold
- And more in future
Usage
It is so easy, you only need to include the class CTreeCtrlEx
in your project, and create control member variable from that class. You can find the function name and the parameters in the source zip file. Here is some sample code from the demo app. Here, m_cTree
is a member of type CTreeCtrlEx
.
HTREEITEM hOrder[1024], hContent[1024];
CString sStr;
for(int i = 0; i < 255; i++)
{
sStr.Format("Parent%d", i);
hOrder[i] = m_cTree.InsertItem(sStr);
for (int j = 0; j < 5; j++)
{
sStr.Format("Child%d", j);
hContent[j] = m_cTree.InsertItem(sStr, hOrder[i]);
m_cTree.SetItemColor(hContent[j], RGB(i, 255, 0));
}
m_cTree.SetItemColor(hOrder[i], RGB(255, i, 0));
}
Acknowledgements
The CTreeCtrlEx
is inspired by code, ideas, and submissions from the following:
License
This article has no explicit license attached to it, but may contain usage terms in the article text or the download files themselves. If in doubt, please contact the author via the discussion board below.
A list of licenses authors might use can be found here.
Lion is a software engineer start working with C/C++ in 1995, after that he move to the internet developing with PERL, PHP, ASP, JSP, MySql. now he since 12 years is working on Object Oriented, Visual C++ (he could say that he speak VC++ better than his nativ language), SDK, MFC, COM, COM+, ATL, ADO, ODBC, Internet technologies, DataBase (MS-SQLServer, ORACLE), named pipe, threading... you name it.
And now he is very interesting in .NET technology, as well in Android development and maybe later in Windows Phone 7.
Lion is originally from Bulgaria, he is working right now in Germany since 2001, developing a hospital/Labor software.