virtual int CharToItem( UINT nKey, UINT nIndex );
Возвращаемое значение
Возврат - 1 или - 2 ни для какого дальнейшего действия или неотрицательного номера, чтобы определить индекс элемента списка, чтобы выполнять заданное по умолчанию действие для нажатия клавиши. Заданный по умолчанию возврат реализации - 1.
Параметры
nKey
ANSI код символа пользователь печатал.
nIndex
Текущая позиция символа каретки списка.
Замечания
Эта функция вызвана рамкой, когда родительское окно списка получает WM_CHARTOITEM сообщение от списка. WM_CHARTOITEM сообщение послано списком, когда это получает WM_CHAR сообщение, но только, если список встречает все эти критерии:
Является владельцем - выводящимся списком. Не имеет LBS_HASSTRINGS стиля. Имеет по крайней мере один элемент.Вы никогда не должны вызвать эту функцию самостоятельно. Перегрузите эту функцию, чтобы обеспечить вашу собственную заказную обработку сообщений клавиатуры.
Пример
// CMyListBox - мой выведенный владельцем список, полученный из CListBox. Этот // пример перемещает символ каретки по нажатию на клавишу // по клавише вверх. Управление списка было создано со // следующий кодом: // pmyListBox->Create( // WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL| // LBS_SORT|LBS_MULTIPLESEL|LBS_OWNERDRAWVARIABLE|LBS_WANTKEYBOARDINPUT, // CRect(10,10,200,200), pParentWnd, 1); // int CMyListBox::CharToItem(UINT nKey, UINT nIndex) { // На числовой клавише переместите символ каретки вверх на один элемент: if (isdigit(nKey) && (nIndex > 0)) SetCaretIndex(nIndex-1); // На алфавитной клавише, переместите символ каретки вниз один элемент. else if (isalpha(nKey) && (nIndex < GetCount())) SetCaretIndex(nIndex+1); // Не выполните никакую заданную по умолчанию обработку. return -1; }