CListBox::CharToItem
Volat v rámci nadřazené okno seznamu obdrží WM_CHARTOITEM zprávy ze seznamu.
virtual int CharToItem(
UINT nKey,
UINT nIndex
);
Parametry
nKey
ANSI kód znaku zadaného uživatele.nIndex
Aktuální pozice pole seznamu stříška.
Vrácená hodnota
Vrátí-1 nebo – 2 žádná další akce nebo nezáporné číslo zadat index pole seznamu položky, ve kterém chcete provést výchozí akci pro stisku klávesy.Výchozí implementace vrátí – 1.
Poznámky
WM_CHARTOITEM Odeslána prostřednictvím seznamu po obdržení WM_CHAR zprávy, ale pouze pokud seznamu splňuje všechna tato kritéria:
Je seznamu překreslování.
Nemá LBS_HASSTRINGS sadu stylů.
Má alespoň jednu položku.
By nikdy volání této funkce sami.Přepsat této funkce můžete poskytnout vlastní vlastní zpracování zpráv klávesnice.
Ve své přepsání musí vracet hodnotu rámci zjistit, jaká opatření byla provedena.Vrácená hodnota – 1 nebo – 2 označuje, že zpracování všech aspektů výběrem položky a vyžaduje žádná další akce v seznamu.Před vrácením – 1 nebo – 2, můžete nastavit výběr nebo přesunout stříška nebo obojí.Výběr pomocí SetCurSel nebo SetSel.Přesunout stříška, použijte SetCaretIndex.
Vrácená hodnota 0 nebo větší Určuje index položky v seznamu a označuje, že seznamu by měl provést výchozí akci pro stisknutí klávesnice na danou položku.
Příklad
// CMyODListBox is my owner-drawn list box derived from CListBox. This
// example moves the caret down one item on a numeric key and up one item
// on an alphabetic key. The list box control was created with the
// following code:
// m_myODListBox.Create(
// WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
// LBS_SORT|LBS_MULTIPLESEL|LBS_OWNERDRAWVARIABLE|LBS_WANTKEYBOARDINPUT,
// CRect(10,250,200,450), pParentWnd, IDC_MYODLISTBOX);
//
int CMyODListBox::CharToItem(UINT nChar, UINT nIndex)
{
// On a numeric key, move the caret up one item.
if (isdigit(nChar) && (nIndex > 0))
{
SetCaretIndex(nIndex-1);
}
// On an alphabetic key, move the caret down one item.
else if (isalpha(nChar) && (nIndex < (UINT)GetCount()))
{
SetCaretIndex(nIndex+1);
}
// Do not perform any default processing.
return -1;
}
Požadavky
Záhlaví: afxwin.h