xgzpan
一步一个脚印
C++博客
首页
新随笔
新文章
联系
聚合
管理
posts - 13, comments - 11, trackbacks - 0
CListCtrl中检测CheckeBox的状态和处理
参考http://www.cppblog.com/hlong/archive/2007/10/26/35217.html
1.先加入
LVN_ITEMCHANGED消息及处理函数
2.消息处理函数:
..................
1
NM_LISTVIEW
*
pNMLV
=
(NM_LISTVIEW
*
)pNMHDR;
2
//
TODO: Add your control notification handler code here
3
if
((pNMLV
->
uOldState
&
INDEXTOSTATEIMAGEMASK(
1
))
/**/
/*
old state : unchecked
*/
4
&&
(pNMLV
->
uNewState
&
INDEXTOSTATEIMAGEMASK(
2
))
/**/
/*
new state : checked
*/
5
)
6
{
7
TRACE(
"
Item %d is checked\n
"
, pNMLV
->
iItem);
8
ChangeImgage(pNMLV
->
iItem);
9
}
10
else
if
((pNMLV
->
uOldState
&
INDEXTOSTATEIMAGEMASK(
2
))
/**/
/*
old state : checked
*/
11
&&
(pNMLV
->
uNewState
&
INDEXTOSTATEIMAGEMASK(
1
))
/**/
/*
new state : unchecked
*/
12
)
13
{
14
TRACE(
"
Item %d is unchecked\n
"
, pNMLV
->
iItem);
15
ChangeImgage(pNMLV
->
iItem);
16
}
17
else
18
{
19
TRACE(
"
Item %d does't change the check-status\n
"
, pNMLV
->
iItem);
20
}
.................
3...
ChangeImgage...
1
void
CWatchServersDlg::ChangeImgage(
int
iItem)
2
{
3
if
( iItem
!=
-
1
)
4
{
5
LVITEM lv_item;
6
memset(
&
lv_item,
0
,
sizeof
(LVITEM));
7
lv_item.iItem
=
iItem;
8
m_list.GetItem(
&
lv_item);
9
lv_item.mask
=
LVIF_IMAGE;
10
if
(m_list.GetCheck(iItem))
11
{
12
//勾住时显示图标
13
lv_item.iImage
=
1
;
14
}
15
else
16
{
17
//没勾住时不显示图标
18
lv_item.iImage
=
-
1
;
19
}
20
m_list.SetItem(
&
lv_item);
21
m_list.Update(iItem); //及时更新状态
22
}
23
}
24
posted on 2008-04-27 15:09
冰风谷
阅读(435)
评论(0)
编辑
收藏
引用
所属分类:
VC控件
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
CListCtrl中检测CheckeBox的状态和处理
MFC程序菜单项是灰色的原因
CListCtr控件的一些常用功能(不断更新)
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
<
2008年4月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔分类
VC控件(3)
编程中的贝壳(3)
冰风手记(7)
存疑待解(2)
注册表编程(1)
随笔档案
2008年5月 (1)
2008年4月 (2)
2008年1月 (3)
2006年9月 (1)
2006年8月 (4)
2006年7月 (2)
文章分类
数据结构与算法
文章档案
2008年4月 (1)
搜索
最新评论
1. re: 工作线程向界面线程发消息的问题
@jruv 我试过了,会报错
--hnuzxc
2. re: 工作线程向界面线程发消息的问题
发消息到界面线程是正确的, 至于结果有问题就是你的程序写的问题了。
直接传递对话框指针来直接设置界面,是强烈不推荐的, 在很多情况下会有问题。
--jruv
3. re: 天南地北一日游:临时站--spin lock
临界区就是spin lock。CAS2windows用interlocked...可以实现的。。linux实现比较麻烦,找了很多都没有找到我现在的机器上能用地
--mybestcool
4. re: vc6.0的内在泄露提示搞死我了
我发现wstring 和 string 确实存在内存泄漏
--诶- -!
5. re: vc6.0的内在泄露提示搞死我了
我的妈啊,只要dll的类里的成员变量是string或wstring就有内在泄露的提示
--冰风谷
阅读排行榜
1. 一个COM对象明明支持一个接口,创建时却返回E_NOINTERFACE的问题(4766)
2. MFC程序菜单项是灰色的原因(2845)
3. 工作线程向界面线程发消息的问题(2008)
4. CListCtr控件的一些常用功能(不断更新)(1236)
5. vc6.0的内在泄露提示搞死我了(1026)
评论排行榜
1. 天南地北一日游:临时站--spin lock(3)
2. 工作线程向界面线程发消息的问题(2)
3. 同行到底是同行(2)
4. 长见识了,呵呵(2)
5. vc6.0的内在泄露提示搞死我了(2)