ClistCtrl的SetItemState参数究竟是怎么回事啊?

来源:百度知道 编辑:UC知道 时间:2024/05/16 13:42:51
比如这句选中某行的代码
SetItemState(i, LVNI_FOCUSED | LVNI_SELECTED, LVNI_FOCUSED | LVNI_SELECTED);

两个参数一模一样?有什么意义啊
好像没人知道是什么意义?

虽然是这样,但还是谢谢了

BOOL CListCtrl::SetItemState(int nItem, UINT uState, UINT uMask);
返回值:非0表示成功,0表示失败。
nItem:表示要被设置新状态的项的在列表控件中的索引值。

uState:表示要设置的新状态,如果传入0值,表示去除当前被设置项的,屏蔽位所标明的那几种状态,如果传入的与uMask(屏蔽位)的值相同,则表示要设置在uMask处所标明的那几种状态。

uMask:指明了那几种状态要设置,或要被去除。

例如:

ctlList.SetItemState(nItem,0,LVIS_SELECTED|LVIS_FOCUSED);

ctlList.SetItemState(nItem,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);

我不知道你在哪个找到的,
我的资料上有是这样的:
BOOL SetItemState(int nItem,LVITEM *pItem);
BOOL SetItemState(int nItem,UNIT nState,UNIT nMask);
nState是状态位的新值,nMask是指定要改变的状态位的屏蔽(表明用户的动作而影响项的状态)

ClistCtrl的SetItemState参数分别是(int nItem,UNIT nState,UNIT nMask);
Item:要设置状态的项的索引
nState:状态位的新值
nMask:指定要改变的状态位的屏蔽

这个函数用来改变列表视图控件中项的状态。因为后面两个参数都是UNIT类型的,所以可以取的值也相同,但是相对的作用是不同的。