CDialogBar & ToolTips
Jeffrey Smith -- wyvern@msn.com Friday, September 20, 1996 Environment: VC++ 4.2, Win 95 Problem: I'm trying to get tool tips using a CDialogBar derived class using a dialog with only static text controls. My OnToolTipNotify handler in this derived class never gets called. What I've done: 1. Override Create() and or'd CBRS_FLYBY | CBRS_TOOLTIP to the create flags. 2. Called EnableToolTips( TRUE ); 3. Added ON_NOTIFY_EX_RANGE( TTN_NEEDTEXT, 0, 0xFFFF, OnToolTipNotify ) 4. EnableDocking() for the object and docked the CDialogBar using DockControlBar(). 5. Override int CDockView::OnToolHitTest( CPoint point, TOOLINFO* pTI ) const. I called the CDialogBar::OnToolHitTest() and checked to see if hit testing was working and my controls were being identified. They were. 6. In OnToolHitTest() I checked to see if LPSTR_TEXTCALLBACK was set in the TOOLINFO* struct and if hwnd member was the handle to my derived class. They were. 7. Also in OnToolHitTest() check to see if TTF_SUBCLASS was set in the flags for TOOLINFO*. It was not. Questions: 1. Since TTF_SUBCLASS was not set, the docs indicate I need to send TTM_RELAYEVENT? If so, where should I do this in the code? 2. Am I off course? Any other ways to get my OnToolTipNotify to be called? Thanks, Jeff Smith
Mark Conway -- mrc@mfltd.co.uk Tuesday, September 24, 1996 Jeremy, this may not be what you want, but if you just want to add fairly standard static text tooltips to a dialog bar, you can: 1) Choose unique ID's for the controls in the dialog bar. 2) Have string table entries for these ID's in your resource file, just as you would for a toolbar (ie \n seperating status bar from tooltip text) 3) Create the dialogbar with CBRS_FLYBY and CBRS_TOOLTIP - don't use EnableToolTips(TRUE) Mark. >---------- >From: Jeffrey Smith[SMTP:wyvern@msn.com] >Sent: 20 September 1996 07:15 >To: MFC List - Submit >Subject: CDialogBar & ToolTips > >Environment: VC++ 4.2, Win 95 > >Problem: >I'm trying to get tool tips using a CDialogBar derived class using a >dialog >with only static text controls. My OnToolTipNotify handler in this >derived >class never gets called. > >What I've done: >1. Override Create() and or'd CBRS_FLYBY | CBRS_TOOLTIP to the create >flags. >2. Called EnableToolTips( TRUE ); >3. Added ON_NOTIFY_EX_RANGE( TTN_NEEDTEXT, 0, 0xFFFF, OnToolTipNotify >) >4. EnableDocking() for the object and docked the CDialogBar using >DockControlBar(). >5. Override int CDockView::OnToolHitTest( CPoint point, TOOLINFO* pTI >) >const. I called the CDialogBar::OnToolHitTest() and checked to see if >hit >testing was working and my controls were being identified. They were. >6. In OnToolHitTest() I checked to see if LPSTR_TEXTCALLBACK was set >in the >TOOLINFO* struct and if hwnd member was the handle to my derived class. >They >were. >7. Also in OnToolHitTest() check to see if TTF_SUBCLASS was set in the >flags >for TOOLINFO*. It was not. > >Questions: >1. Since TTF_SUBCLASS was not set, the docs indicate I need to send >TTM_RELAYEVENT? If so, where should I do this in the code? >2. Am I off course? Any other ways to get my OnToolTipNotify to be >called? > >Thanks, >Jeff Smith > >
| Вернуться в корень Архива |