带复选框的CTreeCtrl响应复选消息
来源:互联网 发布:教育cms 编辑:程序博客网 时间:2024/05/29 08:48
1.在对话框中添加CTreeCtrl控件并勾选Check Boxes选项,为CTreeCtrl控件添加CTreeCtrl变量m_tree;
2.为CTreeCtrl控件添加NM_CLICK消息响应函数OnClickTree();代码如下:
OnClickTree(NMHDR* pNMHDR, LRESULT* pResult)
{
CPoint point;
UINT uFlag; //接收有关点击测试的信息的整数
HTREEITEM hTree;
BOOL bCheck;
GetCursorPos(&point); //获取屏幕鼠标坐标
m_tree.ScreenToClient(&point); //转化成客户坐标
hTree = m_tree.HitTest(point,&uFlag); //返回与CtreeCtrl关联的光标的当前位置和句柄
if (hTree && (TVHT_ONITEMSTATEICON & uFlag)) //点中复选框
{
bCheck = m_treeSsid.GetCheck(hTree); //获取当前复选状态
SetChildCheck(hTree,!bCheck); //设置子项复选状态
}
*pResult = 0;
}
3.SetChildCheck()函数为自定义的处理函数(响应点击复选框后的具体处理函数):
下面的函数功能为:父项选中或取消选中,子项跟住选中或取消选中;
SetChildCheck(HTREEITEM hTree,BOOL bCheck)
{
hTree = m_tree.GetChildItem(hTree); //获取子项句柄
while (hTree)
{
m_tree.SetCheck(hTree, bCheck);
SetChildCheck(hTree,bCheck); //递归调用
hTree = m_tree.GetNextSiblingItem(hTree); //获取兄弟的句柄
}
}
4.总结:关键是TVHT_ONITEMSTATEICON,它标志鼠标点击的是树形控件的复选框;
- 带复选框的CTreeCtrl响应复选消息
- 带复选框的CTreeCtrl响应复选消息
- 带复选框的CTreeCtrl响应复选消息
- 带复选框的CTreeCtrl响应复选消息
- 带复选框的CTreeCtrl响应复选消息
- 带复选框的CTreeCtrl响应复选消息的一个解决方法
- 带复选框的树控件中如何添加响应复选框的消息
- 带复选框的窗口
- 带复选框的ListBox
- 带复选框的JTable
- 带复选框的树控件-复选框点击事件
- Dtree 带复选框
- 在CTreeCtrl中捕获复选框选中消息,父子节点选中状态联动
- 在CTreeCtrl中捕获复选框选中消息,父子节点选中状态联动 .
- 在CTreeCtrl中捕获复选框选中消息,父子节点选中状态联动
- 带复选框的下拉框
- 带三态复选框的TreeView
- 带三态复选框的TreeView
- php官方网站,PHP函数手册,中文函数手册下载 地址收录
- spring 通过配置向quartz 注入service
- WinCE驱动程序的分类
- 二进制、八进制、十六进制
- windows 下配置平php站点
- 带复选框的CTreeCtrl响应复选消息
- 我的Android游戏引擎——Cyclone 前言
- 你是我生命中最重要的人。我说,你是我的天使。
- CMarkup概述
- spring事务管理全解析
- Apache+PHP+Mysql
- 网络编程一
- Android开发经验小节1:不要动不动就分配内存【转】
- 将oracle em设置成英文(firefox浏览器)