原文地址: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.

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

  1. DevExpress TreeList控件的复选框

    作者:jiankunking 出处:http://blog.csdn.net/jiankunking TreeList控件能够同一时候显示树结构和其它数据列,即在一个列上建立父子关系展开或收缩,同一时 ...

  2. 下拉选择select和复选框checkbox的状态的各种方式

    复选框的状态 <input name="ck" value=" " type="checkbox"  checked> 或者&l ...

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

    前端JS代码: //识别不同的浏览器 function getTargetElement(evt) { var elem if (evt.target) { elem = (evt.target.no ...

  4. jQueryMobile控件之复选框

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

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

    搜索了一下,QTableView中嵌入复选框CheckBox方法有四种: 第一种不能之前显示,必须双击/选中后才能显示,不适用. 第二种比较简单,通常用这种方法. 第三种只适合静态显示静态数据用 第四 ...

  6. python QQTableView中嵌入复选框CheckBox四种方法

    搜索了一下,QTableView中嵌入复选框CheckBox方法有四种: 第一种不能之前显示,必须双击/选中后才能显示,不适用. 第二种比较简单,通常用这种方法. 第三种只适合静态显示静态数据用 第四 ...

  7. [原创]纯JS实现网页中多选复选框checkbox和单选radio的美化效果

    图片素材: 最终效果图: <html><title> 纯JS实现网页中多选复选框checkbox和单选radio的美化效果</title><head>& ...

  8. jQuery操作复选框checkbox技巧总结 ---- 设置选中、取消选中、获取被选中的值、判断是否选中等

    转载:https://blog.csdn.net/chenchunlin526/article/details/77448168 jQuery操作复选框checkbox技巧总结 --- 设置选中.取消 ...

  9. .net获取select控件中的文本内容

    .net获取select控件中的文本内容 2009-11-28 21:19小V古 | 分类:C#/.NET | 浏览1374次 <select id="SecType" st ...

随机推荐

  1. C++ ORM ODB 入门(三)

    本节介绍ODB的事务与 异常. 数据库操作经常涉及到操作多个表格,或者表格中的多行数据.因此必须保证整个过程是原子性的.ODB为数据库的事务提供了易于使用的接口. 使用odb::databse的相关方 ...

  2. Android 自学之线性布局 LinearLayout

    线性布局(LinearLayout),线性布局有点想AWT编程里面的FolwLayout,他们都会将容器里面的组件挨个的排列起来. 他们最大的区别在于:Android的线性布局不会换行:AWT里面的F ...

  3. html代码实现自动滚动,鼠标滑过时停止滚动

    <marquee style="width: 1200px;height:200px;margin:0px auto" onmouseout="this.start ...

  4. C#三元运算符

    ?:表达式1?表达式2:表达式3如果1为真则执行2,为假执行3

  5. Meta http-equiv属性

    http-equiv顾名思义,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为content,content中的内容其实就是各个参数的变 ...

  6. NUnit使用详解(二)

    转载:http://hi.baidu.com/grayworm/item/39aa11c5d9375d56bdef6990 五:常用断言 在NUnit中,断言是单元测试的核心.NUnit提供了一组丰富 ...

  7. iOS开发中常用的分类方法---UIImage+Category

    在开发中使用分类对原有的系统类进行方法扩展,是增强系统原有类功能的常见做法. /** * 自由拉伸一张图片 * * @param name 图片名字 * @param left 左边开始位置比例 值范 ...

  8. iOS 计算两个日期之间的天数问题

    //获取当前时间若干年.月.日之后的时间 + (NSDate *)dateWithFromDate:(NSDate *)date years:(NSInteger)years months:(NSIn ...

  9. O-c中类的继承与派生的概念

    什么是继承 众所周知,面向对象的编程语言具有: 抽象性, 封装性, 继承性, 以及多态性 的特征. 那么什么是继承呢? 传统意义上是指从父辈那里获得父辈留下的东西 在开发中, 继承就是"复用 ...

  10. java新手笔记22 接口示例2

    1.USB package com.yfs.javase; public interface USB { //定义规范 public void read(); public void write(); ...