>>Hi Dragan,
>>
>>What if you loop from right to left?
>>I see this.HitTest(x,y) and this.object.HitTest(x,y,ppNode as iNode @"). Either accepts only 2 parameters w/o error.
>
>Happens even with the location where the click actually happened (the first hittest check before the loop).
>
>I wonder whether this has anything to do with the version of Treeview. Digging back through UT messages, I found my own message from late nineties where I have found some differences in behavior between MSComctlLib.TreeCtrl.2 and COMCTL.TreeCtrl.1 - and I have never had problems with the latter. It also calls .hittest() and, after checking it, yes it still works OK. And the problematic class uses the MSComctlLib.TreeCtrl.2, of course.
And the saga continues. I tried to substitute a control based on COMCTL.TreeCtrl.1 (which I managed to do), but it doesn't inherit the OleClass property.
Steps:
- create a new class based on COMCTL.TreeCtrl.1, in the same classlib, under a different name.
- copy all the PEMs from the old one
- rename the old one (didn't work, complained about "class invalid for this container" (!!?), had to delete it)
- rename the new one to the old one's name (from class browser - didn't complain but didn't do it, then from the project, same error, then from class browser again, then it wouldn't refresh the name in the project for a while, but eventually did)
- recompile classlib
- run the app again
The trouble is that the treeviews in the forms still inherit from MSComctlLib.TreeCtrl.2, even though the parent class is based on COMCTL.TreeCtrl.1, so it misbehaves just like before. I may need to remove the object and add it back, which will be a pain of a job, but well, if there's no other way...