用CTooTipCtrl类吗?
可是menu不是dialog,不能用GetDlgItem()啊!

解决方案 »

  1.   

    看msdn里的例子,不用getdlgitem也行。
      

  2.   

    给你一个编辑器的关键函数。就会明白在哪里都可以搞tip的。
    void CMyTip::OnPaint() 
    {
    CPaintDC dc(this); // device context for painting

    // TODO: Add your message handler code here
    CRect rect;
    GetClientRect(&rect);
    dc.SetBkMode(TRANSPARENT); dc.FillRect(&rect,&CBrush(RGB(255,255,200))); CRect textRect(rect);
    textRect.DeflateRect(2,0); int curText = 0; if (curText == m_curParam)
    dc.SelectObject(boldFont);
    else
    dc.SelectObject(regFont);
    CString str = m_fName;
    dc.TextOut(textRect.left,textRect.top,str);
    CSize sz = dc.GetTextExtent(str);
    textRect.left += sz.cx;
    curText++; dc.SelectObject(regFont); dc.TextOut(textRect.left,textRect.top,"(");
    sz = dc.GetTextExtent("(");
    textRect.left += sz.cx; CSize spsz = dc.GetTextExtent(", "); for (int i = 0; i < m_fParams.GetSize(); i++)
    {
    str = m_fParams[i];
    if (curText == m_curParam)
    dc.SelectObject(boldFont);
    else
    dc.SelectObject(regFont);
    dc.TextOut(textRect.left,textRect.top,str);
    sz = dc.GetTextExtent(str);
    textRect.left += sz.cx;
    dc.SelectObject(regFont);
    if (i < m_fParams.GetSize()-1)
    {
    dc.TextOut(textRect.left,textRect.top,", ");
    textRect.left += spsz.cx;
    }
    curText++;
    }
    dc.TextOut(textRect.left,textRect.top,")"); dc.FrameRect(&rect,&CBrush(RGB(0,0,0)));
    // Do not call CDialog::OnPaint() for painting messages
    }