ClistCtrl设置为单选&报表视图中的单列,没有标题。
我尝试了SetItemState(0,LVIS_SELECTED,LVIF_STATE)
和
SetSelectionMark(int index)
但这些不起作用。
答案 0 :(得分:8)
您还需要在更新项目状态后调用SetSelectionMark。
SetItemState(prev_item, ~LVIS_SELECTED, LVIS_SELECTED);
SetItemState(new_selected_item, LVIS_SELECTED, LVIS_SELECTED);
SetSelectionMark(new_selected_item);
答案 1 :(得分:4)
使用SetItemState(0,LVIS_SELECTED,LVIS_SELECTED)突出显示,和 SetItemState(0,~LVIS_SELECTED,LVIS_SELECTED)取消突出显示。
答案 2 :(得分:2)
只需将属性 - >外观 - >始终显示选择设置为 TRUE
答案 3 :(得分:1)
我认为SetItemState
函数有一个未记录的功能,您可以将-1
作为nItem
参数传递给函数 all 项目。
所以,如果你只想选择 只有一个 ,我可以建议:
SetItemState(-1, 0, LVIS_SELECTED);
SetItemState(index, LVIS_SELECTED, LVIS_SELECTED);
<强>更新强>
(在看到http://www.verycomputer.com/417_11fcb075491b88c9_1.htm#p3后)
SetItemState
函数发送LVM_SETITEMSTATE
消息,而message's reference documentation上的nItem = -1特性记录为wParam
参数。
答案 4 :(得分:1)
如果您不在OnInitialDialog中设置所选项目,则使用此代码:
numbers
答案 5 :(得分:0)
假设要选择的item的索引是w_nCurIdx,使用如下代码
m_pSPSMapList.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
m_pSPSMapList.SetItemState(w_nCurIdx, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);