CListBox::VKeyToItem
부모 창에서 목록 상자를 받았을 때 프레임 워크에 의해 호출 된 WM_VKEYTOITEM 메시지 목록 상자에서.
virtual int VKeyToItem(
UINT nKey,
UINT nIndex
);
매개 변수
nKey
사용자 키의 가상 키 코드를 눌렀습니다.목록은 표준 가상 키 코드를 보려면 winuser.h를 참조 하십시오.nIndex
목록 상자 캐럿의 현재 위치입니다.
반환 값
반환-더 이상 작업에 대 한 2,-1 기본 동작 또는 키 입력에 대 한 기본 작업을 수행 하는 목록 상자 항목의 인덱스를 지정 하는 음수가 아닌 수입니다.
설명
WM_VKEYTOITEM 메시지 목록 상자에 전송 받을 때의 WM_KEYDOWN 만 목록 상자 다음 충족 하지만 메시지:
이 LBS_WANTKEYBOARDINPUT 스타일 집합입니다.
하나 이상의 항목이 있습니다.
절대로 직접이 함수를 호출 해야 합니다.자신의 사용자 지정 키보드 메시지 처리를 제공 하려면이 함수를 재정의 합니다.
프레임 워크 작업 재정의 수행 하는 값을 반환 해야 합니다.반환 값-2 응용 프로그램 항목을 선택 하면 모든 측면을 처리 하 고 목록 상자에서 더 이상의 작업이 필요를 나타냅니다.반환 하기 전에 – 2, 선택 설정 또는 캐럿 또는 둘 다 이동할 수 있습니다.선택 영역을 설정 하려면 사용 SetCurSel 또는 SetSel.캐럿 이동 수 SetCaretIndex.
목록 상자에 키 입력에 대 한 응답의 기본 동작 수행 해야 1 –의 반환 값을 나타냅니다.기본 구현 – 1이 반환 합니다.
반환 값이 0 보다 크고 목록 상자에서 항목의 인덱스를 지정 하 고 목록 상자 키에 지정 된 항목에 대 한 기본 작업을 수행 해야 나타냅니다.
예제
// CMyODListBox is my owner-drawn list box derived from CListBox. This
// example moves the caret down one item on the down key and up one item
// on the up 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::VKeyToItem(UINT nKey, UINT nIndex)
{
// On key up, move the caret up one item.
if ((nKey == VK_UP) && (nIndex > 0))
{
SetCaretIndex(nIndex-1);
}
// On key down, move the caret down one item.
else if ((nKey == VK_DOWN) && (nIndex < (UINT)GetCount()))
{
SetCaretIndex(nIndex+1);
}
// Do not perform any default processing.
return -2;
}
요구 사항
헤더: afxwin.h