我在一个listcontrol控件上每一行显示一个人员的信息,但是信息内容太多了不能全部显示在控件的显示空间中,需要滚动条才可以。所以我想让鼠标放在这一行上时能够出现一个信息条能够把所有信息全部显示出来包括照片,我该怎么作啊?我是新手,求高手帮忙解决!
解决方案 »
- 对话框中,如何设置每个控件的字体大小呢?
- VC++编译器
- vc 如何用 createprocess 打开某网址并获取IHTMLDocument2接口
- 如何在程序中调用windows指令?
- 有没有虚拟的类似CTreeCtrl的类?
- COM+调用问题
- 为什么启动visio总是显示界面?
- [急]用ATL连接点发送一个COM对象给VB,但这个对象为什么不能释放?
- 请教VC中有没有在运行时可用鼠标拖动,可用鼠标改变大小的控件。(用来画流程图)
- new 一个新子窗口的过程中,什么时候修改了主框架的菜单?
- clistbox setitemheight失败
- SetDIBitsToDevice和stretchBlt 函数显示JPG PNG图片
但是你要把照片都显示出来的话,可能要自己绘制照片显示的区域
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);
}
EnableToolTips(TRUE);
m_tt.Create(this);
m_tt.Activate(TRUE); CWnd* pW=GetDlgItem(IDC_CHECK1);//得到窗口指针
m_tooltip.AddTool(pW, "Check1 ");//添加
上面几句要放在OnInitDialog中,不要放在OnCreate中,不然运行会报错。