学习心得:控件之CToolTipCtrl(加入仿系统目录树视图)
来源:互联网 发布:个人网址导航源码 编辑:程序博客网 时间:2024/03/29 05:46
说明:这些代码是建立在仿系统目录树视图之上的。(在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的目录树视图类
- MFC学习之 浮动提示框 CToolTipCtrl 控件的用法
- MFC之对话框程序界面控件提示信息操作CToolTipCtrl
- CToolTipCtrl控件应用
- CToolTipCtrl控件的用法
- 控件介绍:CToolTipCtrl
- 仿写复杂页面之学习心得
- Android控件之ScrollView(滚动视图)
- 仿饿了么加入购物车旋转控件
- 仿饿了么加入购物车旋转控件
- 仿饿了么加入购物车旋转控件
- 仿饿了么加入购物车旋转控件
- EclipseRCP开发之动态的加入视图
- C++ Tricks 1.1 条件运算符(?:)
- 考试前九天
- 我的作业(二)
- Ms Sql Server 2000 个人绿色版 5.62
- 计算题
- 学习心得:控件之CToolTipCtrl(加入仿系统目录树视图)
- Oracle816中如何启动EnterpriseManager
- Ubuntu下安装配置Tomcat 5.5.20,以及MySQL连接池的配置
- 十种白送都不能碰的女人!
- 学习心得:控件之进度条(在程序的状态栏中实现进度条)
- 中国十大元帅
- 文件传输协议(File Transfer Protocol, FTP)
- hello
- ASP 系列函数大全