Why is it so difficult to get complex ListView/TreeView controls?

I’ve seen many applications which make use of Windows ListView or TreeView controls which have far more functionality than those offered by the standard Windows API.

Perhaps one of the most notable (or just one I have in my mind right now), is a hierarchical ListView, or perhaps, a multi-column TreeView (eg a combination of the two controls).  There are so many applications which can use this control.  An example of such, would be Thunderbird’s mail listing (which can be hierarchical if you enable threaded view, as well as accept custom formatting per item).

However, there is no such functionality provided by the Windows API – to implement this, you typically have to either re-invent the wheel, or use “dirty” techniques like owner-drawing (which itself isn’t exactly that simple).  Why, oh why, hasn’t this been implemented as standard Windows functionality?  These controls have hardly changed for like 13 years.

Now one may say that one could just simply use controls other people have written (ActiveX OCXs for VB(A)), but of course, this isn’t always an acceptable solution.

Leave a Reply