控件之CToolTipCtrl(加入仿系统目录树视图)(转)
来源:互联网 发布:科研数据管理软件 编辑:程序博客网 时间:2024/04/28 05:49
说明:这些代码是建立在仿系统目录树视图之上的。(在vs2005下编译通过)
一、首先在BrowseSysTreeDlg.h 中加入成员CToolTipCtrl* m_pToolTipCtrl。在资源里,Tree Control把ToolTip的属性设为True;
二、然后就是初始化,在BOOL CBrowseSysTreeDlg::OnInitDialog()加入如下代码:
…………………………
m_pToolTipCtrl = new CToolTipCtrl; //记住要找个地方释放内存
if (NULL == m_pToolTipCtrl || (!m_pToolTipCtrl->Create(this, TTS_ALWAYSTIP)))
return FALSE;
m_pToolTipCtrl->AddTool(&m_ctrlTree, _T("szPath:")); //加入
……………………
三、加入之后就是怎么获取消息了,这里是重载了PreTranslateMessage(MSG * pMsg),在ranslateMessage之前
截获WM_MOUSEMOVE,代码如下:
{
if(pMsg->message == WM_MOUSEMOVE && pMsg->hwnd == m_ctrlTree.m_hWnd)
{
CPoint point(LOWORD(pMsg->lParam),HIWORD(pMsg->lParam));
HTREEITEM hItem = m_ctrlTree.HitTest(point);
if(hItem != NULL)
{
LPNODEINFO lpNodeInfo = (LPNODEINFO)m_ctrlTree.GetItemData(hItem);
m_pToolTipCtrl->UpdateTipText(lpNodeInfo->szPath,&m_ctrlTree);
m_pToolTipCtrl->RelayEvent(pMsg);
}
}
return CDialog::PreTranslateMessage(pMsg);
}
另一种方法:
1.在增加ToolTip时不指定显示的字串,而是使用LPSTR_TEXTCALLBACK。
2.在窗口中增加消息映射 ON_NOTIFY_EX( TTN_NEEDTEXT, 0, SetTipText )。
4.在窗口中增加一个函数用于动态提供显示内容,其原型为 BOOL SetTipText( UINT id, NMHDR * pTTTStruct, 3LRESULT * pResult ),下面的代码可以根据传入的参数判定应该显示的内容。
BOOL CBrowseSysTreeDlg::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):
//设置相应的显示字串
return TRUE;
break;
case(IDC_YOUR_CONTROL2) :
//设置相应的显示字串
return TRUE;
break;
}
}
return(FALSE);
}
- 控件之CToolTipCtrl(加入仿系统目录树视图)(转)
- 学习心得:控件之CToolTipCtrl(加入仿系统目录树视图)
- 学习心得:控件之Tree Control (仿系统目录树视图)
- 学习心得:控件之Tree Control (仿系统目录树视图)
- 仿Explorer的目录树视图类
- 仿Explorer的目录树视图类
- CToolTipCtrl使用详细解说(转)
- CToolTipCtrl使用详细解说(转)
- Android控件之ScrollView(滚动视图)
- MFC学习之 浮动提示框 CToolTipCtrl 控件的用法
- MFC之对话框程序界面控件提示信息操作CToolTipCtrl
- CToolTipCtrl控件应用
- CToolTipCtrl控件的用法
- 控件介绍:CToolTipCtrl
- MFC树视图控件(Tree Control)
- 图形视图框架实战之仿QQ登录界面(可旋转)
- ASP.NET服务器控件之视图状态(ViewState 初探)
- ASP.NET服务器控件之视图状态(ViewState 初探)
- 正则表达式30分钟入门教程
- go go
- sql年月日计算方法
- 在VC++6.0中使用气泡提示(转)
- VC6.0下实现系统托盘的气泡提示窗口(转)
- 控件之CToolTipCtrl(加入仿系统目录树视图)(转)
- CToolTipCtrl使用详细解说(转)
- 五百强各大行业简介+面试流程+tips
- メールの送信
- ActiveX技术综述
- 项目管理没有神话
- 完成Swf2Image库的V1.0版本开发,用于将Swf转换为各类图片
- 软件学院实验室英文名称一览
- C#调用Win32的API函数的过程