I tried to use a new CVSListBox but I got a lot of memory leaks.
There seems to be more than one problem.
The first leak is in CMFCVisualManager. I managed it by adding a "CMFCVisualManager::DestroyInstance();" in the destructor of my App, but it's an error anyway.
The second is much bigger problem. I could track it down to the following reason:
- OnInitDialog subclasses the Feature Pack controls in a CMFCControlContainer. This creates a new CVSListbox object for the control, creates the buttons AND the tooltips for the buttons.
- After that, DoDataExchange in my App will be called. The DDX_Control uses MY CVSListBox object for the control. When called, it detects, that the object isn't initialized and calls "ReSubclassControl" from "CMFCControlContainer". Up to this point everything is OK. ReSubclassControl detects that the control is already subclassed and deletes the old object, thats OK, too. But the Problem is due to the fact, that the tooltips of the buttons were deleted in "CMFCButton::OnDestroy"! But this function won't be called because I destroy the object but not the window.