clISTCTRL 的 checkbox 状态改变 的扑捉问题!
在CListCtrl 的 report mode 下,现具有 LVS_EX_CHECKBOXES (带有CHECKBOX) 风格,
现在想达到这样的目的: 当用户用鼠标改变 checkbox 的状态时, 想执行自定义的函数, 请问有没有状态该变的消息, 有如何实现?
还有, 如果 我用的ClistCtrl::Insertitem(Lviitem * )版本, 想在这个函数的执行过程中,设置本item的checkbox 状态, 请问:
LVITEM item;
item.mask = LVIF_STATE | LVIF_TEXT;
item.stateMask = LVIS_STATEIMAGEMASK; // 是否正确
item.state = ???? // 如果让其处于钩的状态的话, 是 8192 or 1; 非钩是 4096 or 0 这两种情况 我都试过了, 可是没有用!!
附:我用了LVN_ITEMCHANGED 消息, 和 LVIS_STATEIMAGEMASK 组合使用, 可调试的时候发现 这不能判断出 checkbox的状态什么'时候改变!
在线等待......
问题点数:0、回复次数:6Top
1 楼xiaodongdehome(骆驼 Msn : greatcampo@hotmail.com)回复于 2005-06-01 21:15:21 得分 0
人呢?
唉..............Top
2 楼xiaodongdehome(骆驼 Msn : greatcampo@hotmail.com)回复于 2005-06-01 21:47:43 得分 0
LVITEM item;
ZeroMemory(&item, sizeof(LVITEM));
item.mask = LVIF_STATE | LVIF_TEXT;
item.pszText = _T("线 色");
item.iItem = nItem;
item.iSubItem = 0;
item.stateMask = LVIS_STATEIMAGEMASK;
item.state = (UINT)8192;
const nIndex = CListCtrl::InsertItem(&item);
int ttt = CListCtrl::GetCheck(nIndex);
Top
3 楼xiaodongdehome(骆驼 Msn : greatcampo@hotmail.com)回复于 2005-06-01 21:48:28 得分 0
那个ttt 为什么是 0?Top
4 楼xtjqu(LPVOID)回复于 2005-06-01 22:29:29 得分 0
在函数开始运行一下UpdateData()Top
5 楼xiaodongdehome(骆驼 Msn : greatcampo@hotmail.com)回复于 2005-06-02 09:24:04 得分 0
朋友们, 都进来看以下!
顺便说一下:
那个 8192 我我通过SETCHECK()函数 后 ,调试结果查出来的!
Top
6 楼xiaodongdehome(骆驼 Msn : greatcampo@hotmail.com)回复于 2005-06-02 10:14:18 得分 0
难道用 insertitem(LVITEM*) 这个方法初始化不了 具有checkbox 的CLIstCtrl 的checkbox的状态!?
只有后来用setcheck() 或者用消息宏!?
???????????????????????????
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Top




