如何获取CListCtrl中CheckBox的状态

CListCtrlm_listCtrl;请教如何获取CListCtrl中复选框的状态...... CListCtrl m_listCtrl;

请教如何获取 CListCtrl 中 复选框的状态...
展开
 我来答
yilinshop
推荐于2016-05-09 · TA获得超过787个赞
知道小有建树答主
回答量:464
采纳率:0%
帮助的人:330万
展开全部
带有CheckBox的CListCtrl中Check状态的获取
原创代码下载:CheckListCtrl.rar

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.

参考资料: http://www.cppblog.com/hlong/archive/2007/11/26/35217.html

TableDI
2024-07-18 广告
VLOOKUP是Excel中用于垂直查找的函数,其基本用法包括四个参数:1. 查找值:即在数据表首列中需要搜索的值。2. 数据表:包含查找值的单元格区域或数组。3. 返回值所在列数:指定返回查询区域中第几列的值。4. 查找方式:选择精确匹配... 点击进入详情页
本回答由TableDI提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式