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 )函数。
...全文
159 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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的社区了。

字体太小,样式难看,发个代码格式也差老远了。

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧