我正在尝试编写一个程序,在列表视图中选择和聚焦特定项目。
为什么调用 ListView_SetSelectionMark(或发送 LVM_SETSELECTIONMARK)无法将焦点设置在列表视图项上?调用 ListView_SetSelectionMark 后,焦点保持在原来的位置,而不是切换到新位置;当我按下箭头键时,它会从先前聚焦的项目而不是我指定的项目移动。
这是我选择和聚焦项目的代码片段:
ListView_SetItemState(this->m_hwndChild, index, LVNI_SELECTED, LVNI_SELECTED);
ListView_SetSelectionMark(this->m_hwndChild, index);
ListView_EnsureVisible(this->m_hwndChild, index, false);
SetFocus(this->m_hwndChild);
这是一个完整的要点。每次按下 Ctrl-R 时,它都会随机选择列表视图中的一项。