CTreeCtrl控件相关

ojc520520 2014-08-20 04:21:26
1):怎样当鼠标移动到根项或子项时弹出提示框(CTooltipCtrl那样的)。
2):怎样当双击控件上项时,提示信息显示在Edit控件上,有很多项怎么判断该项显示对应的信息。
最好给出详细的代码,谢谢了。
...全文
109 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyx100 2014-08-22
  • 打赏
  • 举报
回复
引用 6 楼 sols000 的回复:
两个控件差不多, initListToolTips这个函数放到InitDilalog里面去吧, m_vector_DocList是你需要展示的信息容器, 不一定必须要这个,信息也可以从treectrl里面取,
树叶上的蜗牛 2014-08-22
  • 打赏
  • 举报
回复
两个控件差不多, initListToolTips这个函数放到InitDilalog里面去吧, m_vector_DocList是你需要展示的信息容器, 不一定必须要这个,信息也可以从treectrl里面取,
ojc520520 2014-08-22
  • 打赏
  • 举报
回复
引用 3 楼 sols000 的回复:
前几天,我才做了一个这个功能, 有如下变量

	CListCtrl m_listDoc;
	CToolTipCtrl m_tipList;
初始化一下提示控件

void CDlgStationInfo::initListToolTips(){

	CRect itemRect;
	m_tipList.Create(this); 
	m_tipList.SetMaxTipWidth(500);
	m_tipList.SetDelayTime(0); //设置延迟
	m_tipList.SetTipTextColor( RGB(0,0,255) ); //设置提示文本的颜色
	m_tipList.SetTipBkColor( RGB(255,255,255)); //设置提示框的背景颜色

	for (UINT i=0 ; i< m_vector_DocList.size() ; i++)
	{
		m_listDoc.GetItemRect(i,&itemRect,TVSIL_NORMAL);
		m_tipList.AddTool( &m_listDoc,m_vector_DocList[i], &itemRect, i+1); 
	}
	m_tipList.Activate(TRUE); //设置是否启用提示
}
添加预处理消息

BOOL CDlgStationInfo::PreTranslateMessage(MSG* pMsg)
{
	// TODO: 在此添加专用代码和/或调用基类
	//if(pMsg->message==WM_MOUSEMOVE )
		m_tipList.RelayEvent(pMsg);
	return CDialog::PreTranslateMessage(pMsg);
}

具体地方可以更具需求改一下
这个ListCtrl控件和TreeCtrl一样吗。 initListToolTips这个函数放在哪里。 m_vector_DocList是什么。 MFC小白
ojc520520 2014-08-22
  • 打赏
  • 举报
回复
引用 2 楼 VisualEleven 的回复:
http://blog.csdn.net/qing2087312/article/details/6617760 看下有帮助没有?
不知道怎么作用在CTreeCtrl控件上
树叶上的蜗牛 2014-08-22
  • 打赏
  • 举报
回复
前几天,我才做了一个这个功能, 有如下变量

	CListCtrl m_listDoc;
	CToolTipCtrl m_tipList;
初始化一下提示控件

void CDlgStationInfo::initListToolTips(){

	CRect itemRect;
	m_tipList.Create(this); 
	m_tipList.SetMaxTipWidth(500);
	m_tipList.SetDelayTime(0); //设置延迟
	m_tipList.SetTipTextColor( RGB(0,0,255) ); //设置提示文本的颜色
	m_tipList.SetTipBkColor( RGB(255,255,255)); //设置提示框的背景颜色

	for (UINT i=0 ; i< m_vector_DocList.size() ; i++)
	{
		m_listDoc.GetItemRect(i,&itemRect,TVSIL_NORMAL);
		m_tipList.AddTool( &m_listDoc,m_vector_DocList[i], &itemRect, i+1); 
	}
	m_tipList.Activate(TRUE); //设置是否启用提示
}
添加预处理消息

BOOL CDlgStationInfo::PreTranslateMessage(MSG* pMsg)
{
	// TODO: 在此添加专用代码和/或调用基类
	//if(pMsg->message==WM_MOUSEMOVE )
		m_tipList.RelayEvent(pMsg);
	return CDialog::PreTranslateMessage(pMsg);
}

具体地方可以更具需求改一下
ojc520520 2014-08-22
  • 打赏
  • 举报
回复
引用 6 楼 sols000 的回复:
两个控件差不多, initListToolTips这个函数放到InitDilalog里面去吧, m_vector_DocList是你需要展示的信息容器, 不一定必须要这个,信息也可以从treectrl里面取,
不行弄了很久,,这两个控件还是有差别的。
我喝多了 2014-08-22
  • 打赏
  • 举报
回复
都让他们说完了
Eleven 2014-08-20
  • 打赏
  • 举报
回复
http://blog.csdn.net/qing2087312/article/details/6617760 看下有帮助没有?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧