Share via


CListBox::VKeyToItem

부모 창에서 목록 상자를 받았을 때 프레임 워크에 의해 호출 된 WM_VKEYTOITEM 메시지 목록 상자에서.

virtual int VKeyToItem(
   UINT nKey,
   UINT nIndex 
);

매개 변수

  • nKey
    사용자 키의 가상 키 코드를 눌렀습니다.목록은 표준 가상 키 코드를 보려면 winuser.h를 참조 하십시오.

  • nIndex
    목록 상자 캐럿의 현재 위치입니다.

반환 값

반환-더 이상 작업에 대 한 2,-1 기본 동작 또는 키 입력에 대 한 기본 작업을 수행 하는 목록 상자 항목의 인덱스를 지정 하는 음수가 아닌 수입니다.

설명

WM_VKEYTOITEM 메시지 목록 상자에 전송 받을 때의 WM_KEYDOWN 만 목록 상자 다음 충족 하지만 메시지:

절대로 직접이 함수를 호출 해야 합니다.자신의 사용자 지정 키보드 메시지 처리를 제공 하려면이 함수를 재정의 합니다.

프레임 워크 작업 재정의 수행 하는 값을 반환 해야 합니다.반환 값-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

참고 항목

참조

Clistbox 클래스 클래스

계층 구조 차트

CListBox::CharToItem

CListBox::SetCurSel

CListBox::SetSel

CListBox::SetCaretIndex