Как сосредоточиться на элементе в clistctrl в C++ ?
Я создал один CXTListCtrl в формате LVS_ICON, так что у меня есть 20 изображений в группе. Я показываю изображения в строке 5 изображений,а затем следующую строку, как это.
Проблема в том, что, когда мне нужно переместить фокус с пятого пункта на шестой, фокус не приходит на это и не идет дальше изображений.
Что я уже пробовал:
LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR; if (pLVKeyDow->wVKey == VK_LEFT || pLVKeyDow->wVKey == VK_RIGHT || pLVKeyDow->wVKey == VK_UP || pLVKeyDow->wVKey == VK_DOWN) { switch(pLVKeyDow->wVKey) { case VK_RIGHT: if (SelectedItem < Total - 1) NewItem = SelectedItem + 1; if(NewItem % 5 == 0) { m_listCtrl->SetFocus(); m_listCtrl->SetItemState(NewItem,LVIS_FOCUSED|LVIS_SELECTED,LVIS_SELECTED); } break; } }
Richard MacCutchan
Если текущий элемент является последним в строке, то вам нужно увеличить номер строки и установить индекс столбца равным нулю.
Sergey Alexandrovich Kryukov
Нет такой вещи, как"фокусировка и предмет". Не путайте фокусировку (которая всегда является фокусом клавиатуры) и выбор.
—СА