我在一个listcontrol控件上每一行显示一个人员的信息,但是信息内容太多了不能全部显示在控件的显示空间中,需要滚动条才可以。所以我想让鼠标放在这一行上时能够出现一个信息条能够把所有信息全部显示出来包括照片,我该怎么作啊?我是新手,求高手帮忙解决!

解决方案 »

  1.   

    用 ToolTips 提示窗口来实现
    但是你要把照片都显示出来的话,可能要自己绘制照片显示的区域
      

  2.   

    ToolTip是Win32中一个通用控件,MFC中为其生成了一个类CToolTipCtrl,总的说来其使用方法是较简单的,下面讲一下它的一般用法和高级用法。 一般用法步骤: 添加CToolTipCtrl成员变量   m_tt。 在父窗口中调用EnableToolTips(TRUE); 在窗口的OnCreate(或者其他适当的位置)中向ToolTip中添加需要显示Tip的子窗口,并同时指定相应的显示字串CToolTipCtrl::AddTool(pWnd, "string   to   display ")。 重载父窗口的   BOOL   PreTranslateMessage(MSG*   pMsg)   ,在函数中调用   m_tt.RelayEvent(pMsg)。 下面假设在窗口CWndYour中使用CToolTipCtrl 在类定义中添加变量说明: 
    class   CWndYour:xxx 

    CToolTipCtrl   m_tt; 

    在OnCreate中添加需要显示Tip的子窗口 
    CWndYour::OnCreate(....) 

    EnableToolTips(TRUE); 
    m_tt.Create(this); 
    m_tt.Activate(TRUE); CWnd*   pW=GetDlgItem(IDC_CHECK1);//得到窗口指针 
    m_tooltip.AddTool(pW, "Check1 ");//添加 
    ........ 

    在BOOL   PreTranslateMessage(MSG*   pMsg)中添加代码 
    BOOL   CWndYour::PreTranslateMessage(MSG*   pMsg) 


    m_tt.RelayEvent(pMsg); 

    return   CParentClass::PreTranslateMessage(pMsg); 
    } 这样当鼠标移动到相应的子窗口上时会显示出相应的ToolTip。 动态改变ToolTip的显示内容的方法及步骤: 上面所讲的1、2、4步骤。 在增加ToolTip时不指定显示的字串,而是使用LPSTR_TEXTCALLBACK。 在窗口中增加消息映射   ON_NOTIFY_EX(   TTN_NEEDTEXT,   0,   SetTipText   )。 在窗口中增加一个函数用于动态提供显示内容,其原型为   BOOL   SetTipText(   UINT   id,   NMHDR   *   pTTTStruct,   LRESULT   *   pResult   ),下面的代码可以根据传入的参数判定应该显示的内容。 BOOL   CWndYour::SetTipText(   UINT   id,   NMHDR   *   pTTTStruct,   LRESULT   *   pResult   ) 

    TOOLTIPTEXT   *pTTT   =   (TOOLTIPTEXT   *)pTTTStruct;         
    UINT   nID   =pTTTStruct-> idFrom;   //得到相应窗口ID,有可能是HWND 
    if   (pTTT-> uFlags   &   TTF_IDISHWND)         //表明nID是否为HWND 

                    nID   =   ::GetDlgCtrlID((HWND)nID);//从HWND得到ID值,当然你也可以通过HWND值来判断 
    switch(nID) 
    case(IDC_YOUR_CONTROL1)                 
    strcpy(pTTT-> lpszText,your_string1);//设置 
    return   TRUE; 
    break; 
    case(IDC_YOUR_CONTROL2) 
    //设置相应的显示字串 
    return   TRUE; 
    break; 

    return(FALSE); 
      

  3.   

    CListCtrl and Displaying a Tooltip
      

  4.   

    3楼中
    EnableToolTips(TRUE);  
    m_tt.Create(this);  
    m_tt.Activate(TRUE);  CWnd* pW=GetDlgItem(IDC_CHECK1);//得到窗口指针  
    m_tooltip.AddTool(pW, "Check1 ");//添加 
    上面几句要放在OnInitDialog中,不要放在OnCreate中,不然运行会报错。