Tooltips for Menu Items and Popup Menu Items

Environment: VC6 SP4, NT4 SP3 and above

This is a simple and the best way to add tooltips to menu items. All you have to do is include the header file, call Create, and hook the WM_MENUSELECT message. My helper class will take care of everything else from there.

Call this Create function in the OnInitDialog or OnCreate functions of your main window.

myMenuToolTip.Create(m_hWnd, _T("Sample Menu Text"),
              AfxGetResourceHandle()
  ,TTS_NOPREFIX | TTS_BALLOON       // play with this flags to get
                                    // your own style of toolips
  , _T("My Best Tool Tip Title")    // title for the tooltips
  );

When your window receives WM_MENUSELECT, call the OnMenuSelect function to notify my helper class.

myMenuToolTip.OnMenuSelect(nItemID, nFlags, hSubMenu);

Downloads

Download demo/source project - 19 Kb
Open Header file - 5 Kb


Comments

  • Shadow

    Posted by Legacy on 11/26/2003 12:00am

    Originally posted by: Anonymous

    Is there a flag for adding shadow? I know only 2000+ support it.

    Reply
  • little bug

    Posted by Legacy on 11/25/2003 12:00am

    Originally posted by: jink

    void SetToolTipPosition(HMENU hMenu, UINT nItemID)
    
    {
    ...
    ::GetMenuItemRect(m_hParent, hMenu, nItem, &rt);
    ...
    }

    ----->

    void SetToolTipPosition(HMENU hMenu, UINT nItemID)
    {
    ...
    ::GetMenuItemRect(NULL, hMenu, nItem, &rt);
    ...
    }

    better.:)

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Best-in-Class organizations execute on a strategy that supports the multi-channel nature of customer requests. These leading organizations do not just open up their service infrastructures to accommodate new channels, but also empower their teams to deliver an effective and consistent experience regardless of the channel selected by the customer. This document will highlight the key business capabilities that support a Best-in-Class customer engagement strategy.

  • In support of their business continuity and disaster recovery plans, many midsized companies endeavor to avoid putting all their eggs in one basket. Understanding the critical role of last-mile connectivity and always available Internet access for their enterprises, savvy firms utilize redundant connections from multiple service providers. Despite the good intentions, their Internet connectivity risk may still be in a single basket. That is because internet service providers (ISPs) and competitive local …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds