tooltips: 2 questions
Douglas Earl -- dae@Rational.COM Monday, June 24, 1996 VC++ 4.1 / Win 95 Question 1: tooltips stop working - why? I'm trying to implement tooltips for an edit control in a control bar. = I've taken the steps outlined in "Programming with MFC: Encyclopedia" = from Books Online 4.1. That is, call EnableToolTips for my control bar = and provide a handler for TTN_NEEDTEXT. Everything works great until I = do a mouse operation in my application's main window. From that point = on, the tooltip fails to display for the control until I bring up a = different tooltip (e.g. on the toolbar). This sounds suspiciously like = a problem outlined in the KnowledgeBase (Tool Tips Stop Showing After = WM_xBUTTONDOWN - Q148495), however I don't see how it relates since they = assume I have my own tool tip control, which is not the case since I'm = letting MFC handle everything (via EnableToolTips). Am I truly doing = something wrong with my WM_xBUTTON handlers? Is there a workaround = (preferably one that doesn't access MFC private code) that would force = MFC to think this was a new tooltip each time? (tooltips works if = CWnd::FilterToolTipMessage thinks this is a different tooltip "hit" than = the previous one). Question 2: TTN_NEEDTEXT vs. TTN_NEEDTEXTA and TTN_NEEDTEXTW While debugging a different problem with the toolbar, I noticed that I = received TTN_NEEDTEXTA notification on Win95 and TTN_NEEDTEXTW on NT = 3.51. Does this mean everywhere I want to process TTN_NEEDTEXT I have = to process the A and W versions instead if I want to be multi-platform? Thanks, Doug
Mario Contestabile -- Mario_Contestabile.UOS__MTL@UOSMTL2.universal.com Thursday, June 27, 1996 > TTN_NEEDTEXT vs. TTN_NEEDTEXTA and TTN_NEEDTEXTW >While debugging a different problem with the toolbar, I noticed that I received TTN_NEEDTEXTA notification on Win95 and >TTN_NEEDTEXTW on NT 3.51. Does this mean everywhere I want to process TTN_NEEDTEXT I have to process the A >and W versions instead if I want to be multi-platform? Look in winfrm.cpp. There they check for both ansi or unicode messages, and go through a series of #ifdefs. If you want to be multi-platform, you would want a Unicode version of your app to run under NT, and an Ansi Version for 95. As such, since the app is 2 different binaries, use "TTN_NEEDTEXT". That way, the code itself doesn't change, you just compile one version with _UNICODE #defined for NT, and another version for 95 without _UNICODE #defined. Of course, if you run the 95 version of your app under NT, the tooltips won't be there. The important thing is that there is one source code version for both platforms. mcontest@universal.com
| Вернуться в корень Архива |