琴云 qinyung.cn

 找回密码
 立即注册
搜索
热搜: UG 模具 琴云
琴云 qinyung.cn 琴云空间 琴云历程 查看内容

CListCtrl设置选中行

2018-2-21 19:59| 发布者: admin| 查看: 264| 评论: 0

摘要: CListCtrl 设置选中状态1. 使用CListCtrl的函数SetItemState(int nItem, UINT nState, UINT nMask);如:m_list.SetItemState(index,LVNI_FOCUSED | LVIS_SELECTED, LVNI_FOCUSED | LVIS_SELECTED); //设置行index为 ...

CListCtrl 设置选中状态

1. 使用CListCtrl的函数SetItemState(int nItem, UINT nState, UINT nMask);

如:
m_list.SetItemState(index,LVNI_FOCUSED | LVIS_SELECTED, LVNI_FOCUSED | LVIS_SELECTED); //设置行index为选中并高亮(如果未设置Focuse,被选中行会变为灰色)
state 字段就是设置item 的状态。 stateMask是设置影响到的状态。
这样要修改 item 状态,就不需要先获取每个状态值,只需要在 stateMask 中指定要修改的某个或者某几个状态即可。
例如这里要修改LVIS_SELECTED状态,只需要将 item 的 state 和 stateMask 都设置为LVIS_SELECTED ,
如果stateMask没有LVIS_SELECTED,则state中的LVIS_SELECTED也不生效。2. 另外,要使被选中行高亮显示,除了将item 的 state 和 stateMask 都设置LVNI_FOCUSED之外,还要将List Control控件的Always show selection属性设置为TRUE(默认为FALSE,也就是说当前选择的 item 在控件非激活状态下是不显示选中行的)。

3. 经过以上修改,在打开对话框之后,指定item在List Control控件中显示为选中状态,但是背景色是灰色,因为打开的对话框焦点不在List Control控件上,
因此需要在对话框类的OnInitDialog()中加一句m_list.SetFocus(),同时将return TRUE改为return FALSE来指示窗口不按照Tab顺序来指定焦点。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

QQ|Archiver|手机版|琴云空间 ( 粤ICP备18018211号-1 )

GMT+8, 2018-10-23 15:11 , Processed in 0.014139 second(s), 16 queries .

返回顶部