listview列前加checkbox,如何让checkbox不可点击(即状态不可改变),或者是直接把它置灰

lewice 2004-10-15 05:06:53
问题如上,谢了!
...全文
525 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lewice 2004-11-23
  • 打赏
  • 举报
回复
我知道原因了,狂笑,onclick是没问题,但是问题出现ondbclick那里
try876 2004-10-21
  • 打赏
  • 举报
回复
不是很明白你的写法,所以很难确定问题所在
正常情况下大家说了这么多了,应该问题解决了,不知道你是不是不大明白大家说的
lewice 2004-10-20
  • 打赏
  • 举报
回复
郁闷,我又试过了,继承也不行,不过不管是继承还是不继承,
不过我发现,
if ( nItem == 0 ) //第一项为不能改变
{
//在此处加断点 *pResult = 1;
return;
}
我在里面加了断点,单步运行,是可以的,不会给checkbox打勾,
可是去掉断点就不行了,
why,怎样作??????
try876 2004-10-19
  • 打赏
  • 举报
回复
印象中
用state image模拟check并且处理鼠标点击
也是有这个问题的,楼主可以蛮试试看

个人认为最好的方法就是继承,然后处理LButtonDown
蒋晟 2004-10-19
  • 打赏
  • 举报
回复
用state image模拟check并且处理鼠标点击
lewice 2004-10-19
  • 打赏
  • 举报
回复
一定要继承吗???,不继承不行啊??
lewice 2004-10-18
  • 打赏
  • 举报
回复
怎样过率啊?那也不一定要继承把
try876 2004-10-18
  • 打赏
  • 举报
回复
继承这个类,在click中进行过滤
lewice 2004-10-18
  • 打赏
  • 举报
回复
我也试了,不行啊,这是一样的啊,checkbox仍然会改变的
if(nFlag == LVHT_ONITEMSTATEICON) //取得点击checkbox
{
if ( nItem == 0 ) //第一项为基本权限,必须拥有,不能改变
{
*pResult = 1;
return;
}
。。。。。。。。
}
lewice 2004-10-18
  • 打赏
  • 举报
回复
没别的办法了吗,我现在换继承类很麻烦,很多要改的了
try876 2004-10-18
  • 打赏
  • 举报
回复
看来不继承是过滤不了的
过滤方法,在继承类的OnLButtonDown中

用HitTest

if(nFlag == LVHT_ONITEMSTATEICON)
{
return;
}
try876 2004-10-16
  • 打赏
  • 举报
回复


UINT nFlag;
int nItem = m_ctrllist.HitTest(point, &nFlag);

if(nFlag == LVHT_ONITEMSTATEICON)
{
*pResult = 1;
}
lewice 2004-10-15
  • 打赏
  • 举报
回复
楼上的,详细点啊,我已经是在NM_CLICK事件中了啊
快乐鹦鹉 2004-10-15
  • 打赏
  • 举报
回复
点击的时候判断点击位置
lewice 2004-10-15
  • 打赏
  • 举报
回复
我刚才试了,还是可以啊,
if ( nItem == 0 ) //第一项
{
*pResult = 1;
return;
}
dawnwinds 2004-10-15
  • 打赏
  • 举报
回复
响应NM_CLICK事件,判断是Click CheckBox,设置*pResult = 1;不做任何处理。

15,979

社区成员

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

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