Hi Sascha,
We use the ActiveX Tree Control from Microsoft. You can find more documentation about it here:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/treeview/treeview.asp
You can have more than the standard state images (checked and unchecked) that could impliment something that you want. Look at the section:
"Working with state image indexes
There is often confusion about how to set and retrieve the state image index in a tree-view control. The following examples demonstrate the proper method for setting and retrieving the state image index. The examples assume that there are only two state image indexes in the tree-view control, unchecked and checked. If your application contains more than two, the
se functions will need to be modified to handle that case.
The following example function illustrates how to set an item's check state." (MSDN)
Besides the state images and "in addition to the selected and nonselected images, a tree-view control's normal image list can contain up to four overlay images. Overlay images are identified by a one-based index and are designed to be drawn transparently over the selected and nonselected images. To assign an overlay mask index to an image in the normal image list, call the ImageList_SetOverlayImage function." (MSDN)