Glad you're succeeding.
Be carefull when dealing with the CBModelessDialog, it is even the parent of most of the other CB... things (see cbmodelessdialog.h for a list of it's childs). Implementing it's virtual functions is a good idea, but prevent from changing this base class.
You might realize the tooltips from inside PreTranslateMessage (I even did this before), but I decided to follow MicroSofts suggested way of implementing this via MessageMap (which even shortened my sometimes lengthy PreTranslateMessage functions)