获取ListControl控件中(复选框)CheckBox的状态

原文地址:http://blog.chinaunix.net/uid-20680966-id-1896376.html

1 建立测试工程     新建一个对话框工程,并添加一个CListCtrl控件,并关联一个成员变量m_List。 2 设置LVS_EX_CHECKBOXES风格     ListView_SetExtendedListViewStyle(m_List.GetSafeHwnd(), m_List.GetExStyle() | LVS_EX_CHECKBOXES); 3 为listctrl添加测试项     在OnInitDialog()中添加如下代码:      m_List.InsertColumn(0,"Name",LVCFMT_LEFT,150);      m_List.InsertColumn(1,"Sex",LVCFMT_LEFT,200);      m_List.InsertItem(0, "ZhangSan");      m_List.InsertItem(1, "LiSi"); 4 添加控件通知消息     为ListCtrl控件添加LVN_ITEMCHANGED消息。系统生成如下代码: void CXXXDlg::OnLvnItemchangedList1(NMHDR *pNMHDR, LRESULT *pResult) { LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR); // TODO: Add your control notification handler code here *pResult = 0; }
5 在LVN_ITEMCHANGED消息处理函数中添加代码如下: void CXXXDlg::OnLvnItemchangedList1(NMHDR *pNMHDR, LRESULT *pResult) { LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR); // TODO: Add your control notification handler code here /* typedef struct tagNMLISTVIEW { NMHDR hdr; int iItem; int iSubItem; UINT uNewState; UINT uOldState; UINT uChanged; POINT ptAction; LPARAM lParam; } NMLISTVIEW, *LPNMLISTVIEW; */ if((pNMLV->uOldState & INDEXTOSTATEIMAGEMASK(1)) /* old state : unchecked */   && (pNMLV->uNewState & INDEXTOSTATEIMAGEMASK(2)) /* new state : checked */   ) {   TRACE("Item %d is checked\n", pNMLV->iItem); } else if((pNMLV->uOldState & INDEXTOSTATEIMAGEMASK(2)) /* old state : checked */   && (pNMLV->uNewState & INDEXTOSTATEIMAGEMASK(1)) /* new state : unchecked */   ) {   TRACE("Item %d is unchecked\n", pNMLV->iItem); } else {   TRACE("Item %d does‘t change the check-status\n", pNMLV->iItem); }
*pResult = 0; }

6 调试 在debug环境下,改变checkbox的选中状态,查看输出信息。 OK.

时间: 2024-08-25 05:33:15

获取ListControl控件中(复选框)CheckBox的状态的相关文章

【mfc】组框、单选框控件与复选框控件

VC6中的MFC中的单选框与复选框控件也不简单,它没有VS中C#那样可以之间通过一个封装之后的函数进行判断,该单选框/复选框有没有被选中啊?或者控制单选框/复选框的选中状态.这东西比较复杂,通过相应的值来控制的. 一.基本目标 下面就用一个简单例子来说明VC6中的MFC中的单选框与复选框控件,点击"确定"按钮能够判断对话框中的所有单选框与复选框的选中状态.Radio1-Radio3互成一个组,组内仅能够有一个组员被选中,Radio4-Radio5也互成一组,选择Radio4能够令复选框

C#ListView控件添加复选框并获取选中的数目

1.添加复选框:listView1.CheckBoxes = true; 2.选中listview并获取选中的数目: private void listView1_ItemChecked(object sender, ItemCheckedEventArgs e) { e.Item.Selected = e.Item.Checked; m = listView1.CheckedItems.Count; label1.Text = "当前选中数:" + m.ToString(); } 说

TreeView控件添加复选框

Delphi的代码,参考一下吧 首先当然是要在Form加一个TTreeView控件咯.:) 然后在单元的公共uses部分加一个Commctrl单元. 好,接下来要做三件事, 1.在FormCreate事件中 加入如下代码 var dw: DWORD; begin dw := GetWindowLong( TreeView1.Handle, GWL_STYLE); dw := dw or TVS_CHECKBOXES; SetWindowLong(TreeView1.Handle, GWL_STY

[asp.net] 通过JS实现对treeview控件的复选框单选控制。

前端JS代码: //识别不同的浏览器 function getTargetElement(evt) { var elem if (evt.target) { elem = (evt.target.nodeType == 3) ? evt.target.parentNode : evt.target } else { elem = evt.srcElement } return elem } var lastC = null; function OnClientTreeNodeChecked(ev

COCOS学习笔记--复选框CheckBox及其控件属性

一.Button介绍 游戏开发中有时我们会用到CheckBox,CheckBox就是复选框,大家应该都见过复选框,它有两个状态,一个勾选态,一个非勾选态,我们可以通过CheckBox在这两个状态间的切换来实现一些特定的判断功能,比如是否游戏关闭音效等. CheckBox也和cocos提供的其他控件一样,我们可以在Cocos Studio中创建并设置相关属性,在代码工程中使用:也可以之间在代码工程中创建使用.CheckBox类提供了对复选框的相关方法,其继承自Widget类: 接下来就通过实例来看

bootstrap-表单控件——复选框checkbox和单选择按钮radio

1.运行效果如图所示 2.实现代码如下 <!DOCTYPE html> <html> <head>     <meta charset="utf-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <title>表单控件--复选框checkbox和单选择按钮radio</title>

QTableView中嵌入复选框CheckBox 的四种方法总结

搜索了一下,QTableView中嵌入复选框CheckBox方法有四种: 第一种不能之前显示,必须双击/选中后才能显示,不适用. 第二种比较简单,通常用这种方法. 第三种只适合静态显示静态数据用 第四种比较适合扩展,它除了可以嵌入复选框,还可以通过paint()绘制其它控件,图片等自定义风格. 第一种方法是:编辑委托法 这种方法直接利用委托中重载createEditor(),激活QCheckBox,这个缺点是必须双击/选中,才能显示CheckBox控件.一般不满足我们实际中的直接显示的需要.可以

C#学习笔记(20140910)-单选控件和单选组控件、复选控件、复选组控件

晚上学习了一下单选控件和单选组控件.复选控件.复选组控件. 稍微动了点脑筋,做了一个小小的网页程序.主要功能是相互赋值已经设置标签的字体大小和颜色已经前后背景色. 主要功能: 1. 在文本输入框中输入文字,提交后可以对标签赋值: 2. 选择单选框可以给标签赋值: 3. 选择单选组控件时可以给标签设置颜色: 4. 选择单选组控件时可以给字体设置大小. 最后的效果如下: 分块设置就不多说了,看看用到了哪些模块吧: 1. 自定义了一个方法,把标签的值赋值给输入框.使得输入框中的内容和标签的内容一致.

ASP.NET TreeView控件父子勾选框联动勾选

摘要:ASP.NET TreeView控件父子勾选框联动勾选 后置代码: this.TreeView1.Attributes.Add("onclick", "CheckEvent();"); JS 代码: function setParentState(objNode) { ?? var objParentDiv = WebForm_GetParentByTagName(objNode, "div"); ?? if (objParentDiv =