AFC is a thin object-oriented wrapper around some of AutoHotkey's functionality. It mainly takes care of wrapping long-time present commands and functions that use old and quirky paradigms into a saner and cleaner class-based API.

AFC is designed to be modular, and to be as direct as possible with the original API. This translates to not having otherwise obvious properties that are implemented through flexi-lists. I believe that the performance and code size penalty is not justified.

Thank you for this wunderful class (and for the wunderful SciTE4AutoHotkey, too) !!!

In order to learn about OOP with AutoHotkey and to get some experience I have converted the second (full) example of the TreeView section in the help and made some additions (folders and icons in the listview and doubleclick for treeview, listview and statusbar) and will share it here with this community:

Debugging with SciTE4AutoHotkey showed that the field in the "tv" object contained "TreeView", but the field "ctrlName" is empty.

This also occurred with the listview and can also be produced with the AFC "Example-Many-Controls.ahk". Additional the event handlers like OnDoubleClick and OnSelect also do not work though the labels are contained in the objects. I think it is them same cause: when the handler is called the label field is empty. On the other side, Button, Edit, UpDown and Statusbar in the example (and Progress from the other example) work without problems.

In these tests I used V1.1.16.04 to V1.1.16.06 in the modes A32, U32 and U64 on XP, Win7 and Win8.1.

Then I checked V1.1.14.03, my previous AHK version, in the same modes on the same systems and it works, so that I could finish my development.

I think this is a bug in the last versions and I wonder if it should be posted in the appropriate section?

For the above noted errors I found a workaround with global variables and a change in CWindow class, but this does not work for event handlers.

I can can confirm the error with ListView and the problem with the ListView Events, which do not work.
I am using V1.1.16.05 U32 with Win7.
But I think I made it work with the following changes:
I changed in the file CCtrlListView.ahk the line 16 from
static __CtrlName := "ListView"
to__CtrlName := "ListView"
This is somehow related to the sub class __Get (line 177). If you comment the sub class, the static works.

To make the events working, I changed in the file CWindow.ahk the line 444 from
oCtrl.OnEvent.(__CWindow_GetGui(), oCtrl, A_GuiEvent, A_EventInfo)
tooCtrl.OnEvent(__CWindow_GetGui(), oCtrl, A_GuiEvent, A_EventInfo)
by removing the second dot, which with my understanding changes it from a function reference to a method call.
With this change I had to change also the line 480 in the file CCtrlListView.ahk from
OnEvent(oCtrl, guiEvent, eventInfo)
toOnEvent(oGui, oCtrl, guiEvent, eventInfo)
Because the hidden "this" did not work here.
Therefore I changed also everywhere in this method "this" to "oGui".

This works for me, but maybe somebody can verify what I did (fincs?).
By the way this is a great example, which made me learning a lot about many specials around classes by studying it.

Since InStr() is not case-sensitive by default, the last parameter in the return statement needs additional clarity. The idea was that it would search for "RightClick" by finding "R", and perhaps InStr() was case-insensitive at the time the library was written, however it now needs to either add the case-sensitive parameter to InStr() or search for "RightClick" instead of "R" -- possible solutions would be as follows:

There are multiple lines in that file where this appears to be the case, including 488 and 501, however considering the number of functions that check GuiEvent in this file and possibly others, it is likely that this needs to be updated throughout the library.

Upon further review, it appears that the syntax I mentioned above is only used in lines 488 and 501 in CCtrlListView.ahk and in line 505 in CCtrlTreeView.ahk. Regardless, I favor the solution where "RightClick" is used.