gpt4 book ai didi

c++ - CListCtrl选择

转载 作者:行者123 更新时间:2023-11-30 02:45:58 25 4
gpt4 key购买 nike

我正在尝试做一些我认为很简单但似乎无法实现的事情!

我有一个 CListCtrl,如果用户在 View 空白处单击,我想选择列表中的最后一个元素。我可以通过调用 Select(lastElementInList) 来做到这一点,但是之前选择的元素和现在未选择的元素周围仍然有一个“边界矩形”。

实现的代码如下:

    int nSel = GetNextItem(-1, LVNI_SELECTED);
if (nSel != -1)
SetItemState(nSel, 0, LVIS_SELECTED);

Select(lastElementInList);

有什么提示吗?我错过了什么?

最佳答案

您看到的“边界矩形” 表示该元素当前“聚焦”,即。在用户交互(例如按下向下和向上箭头)将从这一点开始的状态下。


改变焦点元素

要将焦点 移动到您新选择的元素,您必须使用 SetItemState连同 LVIS_FOCUSED,如下例所示:

if (nSel != -1)
SetItemState (nSel, ~LVIS_FOCUSED, LVIS_FOCUSED); // (1)

SetItemState (lastElementInList, LVIS_FOCUSED, LVIS_FOCUSED); // (2)

// (1) -> Remove focus from `nSel`
// (2) -> Add focus to `lastElementInList`

关于c++ - CListCtrl选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24010345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com