CListCtrl改变某项Check状态的时候如何激发一个消息?

Apezyfly 2005-09-15 01:27:01
VC6.0,在CListCtrl控件中改变某项的Check状态,如何激发一个消息?

例如在该CListCtrl控件所在的对话框初始化中这样定义:
(CListCtrl控件的变量名为m_List1)

::SendMessage(m_List1.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
m_List1.SetExtendedStyle( m_List1.GetExtendedStyle() | LVS_EX_CHECKBOXES | LVS_EX_GRIDLINES);

m_List1.InsertColumn(0, "单位名称", LVCFMT_LEFT, 120);
m_List1.InsertColumn(1, "数据表名", LVCFMT_LEFT, 120);

m_List1.InsertItem(0xffff, "单位一");
m_List1.SetItem(0, 1, 1, "3453456", NULL, 0,0,0);
m_List1.InsertItem(0xffff, "单位二");
m_List1.SetItem(1, 1, 1, "8656546", NULL, 0,0,0);

当我改变某一项前面的选择状态的时候,我需要重新计算被选择的总项数,如何才能激发一个对应的消息呢?

其中改变选择状态的方法有三种:
1、鼠标直接改变。
2、使该项处于选中状态,再通过空格键操作。
3、程序里使用BOOL SetCheck( int nItem, BOOL fCheck = TRUE )函数。
...全文
99 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lianglp 2005-10-03
LVN_ITEMCHANGED这个不好吗?
那个消息返回的状态就可以分得清楚了。只有这个消息才可以得到。
回复
victorzou 2005-09-30
up
回复
Apezyfly 2005-09-16
想到一个方法,就是用CListCtrl的LVN_ITEMCHANGED消息,但是这个消息对应的激发情况太多了,为了改变Check状态就是用这个,效率太低。

各位有更好的方法吗?
回复
Apezyfly 2005-09-15
CSDN社区的程序实在是太差了!
一段时间没来,越发不适应CSDN的社区了。

字体太小,样式难看,发个代码格式也差老远了。
回复
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2005-09-15 01:27
社区公告
暂无公告