65.9K
CodeProject is changing. Read more.
Home

VB style tool tip control similar to IntelliSense ToolTip

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.58/5 (6 votes)

Jul 17, 2003

viewsIcon

59231

downloadIcon

1607

Tool tip control similar to Visual Basic IntelliSense tool tip

Sample Image - intellitip.jpg

Introduction

This is a CDialog derived window, which resembles the tool tip that pop-ups with function parameters in Visual Studio IDE. The control allows to display a function definition with it's parameters and mark the current parameter in bold font.

Usage

  1. Add a dialog resource to your project. Make sure to set the following for this dialog:
    Style = popup. 
    Border = None.
    No TitleBar
  2. Add the dialog as a member to your application's main window.
  3. Call create for the dialog while passing pointer to the window that the tool tip belongs to: m_intelliToolTip.Create(pParentWnd).
  4. Add a function definition:
    BOOL CIntelliTipDemoDlg::OnInitDialog()
    {
     CDialog::OnInitDialog();
    
     // Set the icon for this dialog.  The framework does this automatically
     //  when the application's main window is not a dialog
     SetIcon(m_hIcon, TRUE);   // Set big icon
     SetIcon(m_hIcon, FALSE);  // Set small icon
     
     // TODO: Add extra initialization here
     m_tip.Create(this);
     CStringArray params;
     params.Add("Param 1");
     params.Add("Param 2");
     params.Add("Param 3");
     params.Add("Param 4");
     params.Add("Param 5");
     m_tip.SetFunction("SomeFunction",params);
     m_tip.SetCurParam(3);
     return TRUE;  // return TRUE  unless you set the focus to a control
    }

When you need to show the tool tip, call CIntelliTip::Show() or CIntelliTip::Hide() to hide it. To set the position, call CIntelliTip::SetCursorPoint(cursorPoint). Example:

void CIntelliTipDemoDlg::OnButton1() 
{
 // TODO: Add your control notification handler code here
 CPoint pt;
 GetCursorPos(&pt);
 ScreenToClient(&pt);
 m_tip.SetCursorPoint(pt);
 m_tip.Show();
}