博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取ListControl控件中(复选框)CheckBox的状态
阅读量:5886 次
发布时间:2019-06-19

本文共 1636 字,大约阅读时间需要 5 分钟。

原文地址:

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.

转载于:https://www.cnblogs.com/CocoWang/p/4097077.html

你可能感兴趣的文章
安装gulp及相关插件
查看>>
如何在Linux用chmod来修改所有子目录中的文件属性?
查看>>
Applet
查看>>
高并发环境下,Redisson实现redis分布式锁
查看>>
关于浏览器的cookie
查看>>
Hyper-V 2016 系列教程30 机房温度远程监控方案
查看>>
笔记:认识.NET平台
查看>>
cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)
查看>>
【吉光片羽】短信验证
查看>>
gitlab 完整部署实例
查看>>
GNS关于IPS&ASA&PIX&Junos的配置
查看>>
影响企业信息化成败的几点因素
查看>>
SCCM 2016 配置管理系列(Part8)
查看>>
struts中的xwork源码下载地址
查看>>
ABP理论学习之仓储
查看>>
我的友情链接
查看>>
Tengine新增nginx upstream模块的使用
查看>>
CentOS图形界面和命令行切换
查看>>
HTML5通信机制与html5地理信息定位(gps)
查看>>
汽车常识全面介绍 - 悬挂系统
查看>>