簡體   English   中英

CListCtrl選擇

[英]CListCtrl selection

我正在嘗試做一些我認為很簡單的事情,但我似乎無法讓它發揮作用!

我有一個CListCtrl ,如果用戶在視圖空白區域中單擊,我想選擇列表中的最后一個元素。 我只能通過調用Select(lastElementInList)來做到這一點,但是之前選擇的元素以及現在未被選中的元素周圍仍然有一個“邊界矩形”。

實現此的代碼如下:

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

    Select(lastElementInList);

任何提示? 我錯過了什么?

您看到的“邊界矩形”表示該元素當前是“聚焦”的 ,即。 在這種狀態下,用戶交互(例如按下向上和向上箭頭)將從這一點開始。


改變集中的元素

要將焦點移動到新選擇的元素,您必須與LVIS_FOCUSED一起使用SetItemState ,如下例所示:

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`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM