带复选框的CTreeCtrl响应复选消息

带复选框的CTreeCtrl响应复选消息的一个解决方法 带复选框的CTreeCtrl响应复选消息 1.在对话框中添加CTreeCtrl控件并勾选Check Boxes选项,为CTreeCtrl控件添加CTreeCtrl变量m_tree; 2.为CTreeCtrl控件添加NM_CLICK消息响应函数OnClickTree();代码如下: OnClickTree(NMHDR* pNMHDR, LRESULT* pResult) 阅读详情

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基本使用 在OnInitDialog()函数中初始化CTreeCtrl //初始化CTreeCtrl,为节点添加图片 //资源ID,显示的图标x轴像素,分组 m_pImage->Create(IDB_BITMAP1,24,2,RGB(255,255,255)); m_TreeCtrl.SetImageList(pImage,TVSIL_NORMAL); //插入root节点 HTREEITEM 阅读详情

相关推荐

SIwave:在 SIwave 中释放计算频率扫描的强大功能

AEDT 的电路工具允许注入正确的电压和电流。要使用电路工具,SIwave 必须首先使用 PI 求解器求解结构的 S 参数。

jkh920184196的博客 1476

MFC 树控件含有checkbox的鼠标点击处理

首先要在树控件属性上加上checkbox;或者用代码; MFC鼠标点击消息   afx_msg void OnNMClickTreeUnitshow(NMHDR *pNMHDR, LRESULT *pResult); ON_NOTIFY(NM_CLICK, IDC_TREE_UNITSHOW, OnNMClickTreeUnitshow)  代码控制 void CSelectUnit

问渠哪得清如许 2756

生信人的一天~HIFI数据+HIC数据组装基因组

HIFI+HIC数据组装基因组!

qq_43337286的博客 9530

CTreeCtrl树控件:如何给MFC中的CTreeCtrl树控件添加复选框及选中状态

1、效果如下: 2、首先需要重写树控件类 CCheckTreeCtrl.h #pragma once typedef enum TREE_STATE { STATE_NONE, STATE_UNCHECKED, STATE_CHECKED, STATE_INTERMEDIATE, STATE_DISABLED }; //当树中某项的选中状态被改变时,会触发NM_CHECKSTATECHANGED消息,数据类型为TREEINFO //ON_NOTIFY(NM_CHECKSTATECHANG

欧特GO 3413

《小白入门:无人机电调 ESC 的 PWM 接口特性、主流协议与使用指南》

电调是无人机的 “动力中枢”,其 PWM 接口是入门的基础,而 SBUS、DroneCAN 等协议则代表了更高阶的控制方式。小白学习时,需先掌握 PWM 的基本特性和连接方法,再根据场景选择合适的协议,同时严格遵守使用注意事项(如电源匹配、校准步骤、安全操作)。随着实践深入,逐步理解 “协议差异” 和 “系统协同”,才能让无人机更稳定、安全地飞行。

bother3000的博客 3769

【机器学习|评价指标8】混淆矩阵(Confusion Matrix)、Cohen‘s Kappa 系数、详解,平均交并比(mIoU)、列联表(Contingency Table)附代码。

【机器学习|评价指标8】混淆矩阵(Confusion Matrix)、Cohen's Kappa 系数、详解,平均交并比(mIoU)、列联表(Contingency Table)附代码。

2401_89898861的博客 1430

CTreeCtrl checkbox 单击选择

VC中CTreeCtrl设置了checkbox之后,其选择事件需要自己写代码实现,主要是为了能达到以下目的: (1)单击一个节点后,它的所有子节点(包括子节点的子节点)的状态都要和它设为一致,即它选中则所有子节点都选中,反之亦然。 (2)单击一个节点后,若当前节点设置为选中,则需要判断:若当前节点的其他所有兄弟节点都已选中,那么当前节点的父节点也要选中;否则只把当前节点设为未选中状态。……

yaoyuanyylyy的专栏 4499

Spring AI Alibaba实战训练营-14基于A2A协议智能体应用开发指南

本文介绍了基于A2A协议的智能体应用开发流程,主要包括客户端和服务端两个模块的实现。关键技术包括A2A通信协议、Nacos服务发现、Spring AI Alibaba框架和DashScope通义千问API。开发步骤涵盖环境准备(JDK17、Maven、Nacos)、项目创建、依赖配置(重点引入spring-ai-alibaba相关组件)以及Nacos和DashScope的核心配置。整个系统架构采用客户端通过Nacos发现服务端Agent,再调用阿里云AI服务的模式,实现了AI能力的解耦与复用。

program哲学 506

在CTreeCtrl中捕获复选框选中消息,父子节点选中状态联动 .

转自:http://apps.hi.baidu.com/share/detail/22849017 [cpp] view plaincopyprint? void CMyDlg::OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult)   {  // TODO: Add your control notification handle

月落满楼 2820

代谢组数据分析(二十二):代谢组原始数据Zscore标准化和主成分分析(PCA)及热图

本教程介绍了使用Z-score标准化和主成分分析(PCA)进行代谢组学数据预处理和分析的方法。代谢物原始数据具有高噪声、高维小样本、高变异性和复杂相互作用关系等特点,因此在数据分析时需注意数据质量控制、参数选择、批次效应、假阳性控制等问题。Z-score标准化通过将数据转换为均值为0、标准差为1的标准正态分布,提高了数据的可比性,减少了系统误差,并适应了统计分析方法的需求。PCA则通过降维、去相关和特征提取,帮助理解数据的结构和模式。教程还详细介绍了数据预处理步骤,包括填补缺失值、设置名称和顺序等,并提供了

专注生信领域 2861

【maven】idea左侧External Libraries里,没有Maven的依赖包 代码飘红

文章目录1.概述M.参考 1.概述 因为内网开发,然后这几天我被隔离了,然后公司搞了一个外网的vpn能连接的云桌面,云桌面也是网络隔离的,因此只能自己拷贝相关的文件到里面。 然后我就拷贝了代码和maven仓库中的一部分,因为本地的20G一次拷贝不完,需要多次拷贝,但是我拷贝了kafka,仍然飘红。具体如下 idea左侧External Libraries里,没有Maven的依赖包 然后整了很久都没搞定,后来我自己新建了一个项目,然后引入发现是不可以的,而且框框里面的飘红。 然后我就想是不是因为缺少依赖

九师兄 4411

带复选框的树控件中如何添加响应复选框的消息

1.在对话框中添加CTreeCtrl控件并勾选Check Boxes选项,为CTreeCtrl控件添加CTreeCtrl变量m_tree; 2.为CTreeCtrl控件添加NM_CLICK消息响应函数OnClickTree();代码如下: OnClickTree(NMHDR* pNMHDR, LRESULT* pResult)   {     CPoint point;     UINT

myyzqt的专栏 1752

流体动力学仿真软件:SU2_(3).SU2的网格生成技术

设置网格的大小、密度等参数。

kkchenjj的博客 1030

带复选框的树控件-复选框点击事件

1.在对话框中添加CTreeCtrl控件并勾选Check Boxes选项,为CTreeCtrl控件添加CTreeCtrl变量m_tree; 2.为CTreeCtrl控件添加NM_CLICK消息响应函数OnClickTree();代码如下: OnClickTree(NMHDR* pNMHDR, LRESULT* pResult)  {     CPoint point;    

Mzd1042231371的专栏 2484

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

CTreeCtrl操作总结

CTreeCtrl操作总结

tangaowen的专栏 4605

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

MFC控件之树型控件CTreeCtrl

1、添加内容 //添加第一层节点 TV_INSERTSTRUCT tvfirst; tvfirst.hParent = NULL; tvfirst.item.mask = TVIF_TEXT; tvfirst.item.pszText = "一级单位1"; HTREEITEM firstItem = m_tree.InsertItem(&tvfirst); //添加二级单位节点

lebao82的专栏 1042

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

MFC中CTreeCtrl奇怪的SetCheck [OnInitDialog中SetCheck无效问题]

<br />一、问题的提出<br />CTreeCtrl有个属性TVS_HASBUTTONS,如果创建控件的时候加上了这个属性,则在每个节点的左侧<br />都有一个按钮,用来表示节点的选择状态。通过两个函数SetCheck / GetCheck来设置和获取指定<br />节点的选择状态。<br />但是奇怪的是,在对话框中按照常规的方法使用了SetCheck,最后CTreeCtrl并没有显示节点被选<br />中,下面是测试例子:<br />   1、用wizard创建一个对话框工程,并且在上面放置一个C

zimu2702的专栏 2715

响应ctreectrl中的checkbox消息 转

响应CTreeCtrl中的CheckBox消息2010-11-05 10:45<br />响应CTreeCtrl中的CheckBox消息2009-09-22 16:22添加CTreeCtrl的鼠标单击事件NM_CLICK<br />加入如下代码<br />CPoint pt; <br />UINT flag; <br />HTREEITEM hCurrentItem;       <br />GetCursorPos(&pt); <br />ScreenToClient(&pt); <br />hCurre

feihuadao的专栏 2337

CTreeCtrl使用记录

1、不显示某个节点的checkbox m_ctrTree.SetItemState(root, 0, TVIS_STATEIMAGEMASK); 2、展开节点 m_ctrTree.Expand(root, TVE_EXPAND); 3、收缩节点 m_ctrTree.Expand(root, TVE_EXPAND); 4、响应节点的checkbox点击消息 H...

蓦然回首 783

在CTreeCtrl中捕获复选框选中消息,父子节点选中状态联动

void CMyDlg::OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here NM_TREEVIEW* pHdr = (NM_TREEVIEW*)pNMHDR; *pResult = 0; CPoint point

holyjw的博客 2063
上一篇: VC在对话框中显示网页并对网页进行操作
下一篇: EASY_SIZE:控件随窗口变化自由调整大小
headmaster110
博客等级 码龄18年 10粉丝 39原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值