다음을 통해 공유


MapVirtualKeyExA 함수(winuser.h)

가상 키 코드를 스캔 코드 또는 문자 값으로 변환(매핑)하거나 스캔 코드를 가상 키 코드로 변환합니다. 함수는 입력 언어 및 입력 로캘 식별자를 사용하여 코드를 변환합니다.

구문

UINT MapVirtualKeyExA(
  [in]                UINT uCode,
  [in]                UINT uMapType,
  [in, out, optional] HKL  dwhkl
);

매개 변수

[in] uCode

형식: UINT

가상 키 코드 또는 검색 코드에서 키를 검색합니다. 이 값을 해석하는 방법은 uMapType 매개 변수의 값에 따라 달라집니다.

[in] uMapType

형식: UINT

수행할 번역입니다. 이 매개 변수의 값은 uCode 매개 변수의 값에 따라 달라집니다.

의미
MAPVK_VK_TO_VSC
0
uCode 매개 변수는 가상 키 코드이며 검사 코드로 변환됩니다. 왼쪽 키와 오른쪽 키를 구분하지 않는 가상 키 코드인 경우 왼쪽 검사 코드가 반환됩니다. 변환이 없으면 함수는 0을 반환합니다.
MAPVK_VSC_TO_VK
1
uCode 매개 변수는 검사 코드이며 왼쪽 키와 오른쪽 키를 구분하지 않는 가상 키 코드로 변환됩니다. 변환이 없으면 함수는 0을 반환합니다.
Windows Vista 이상:uCode 값의 상위 바이트에는 확장 검사 코드를 지정하는 0xe0 또는 0xe1 포함될 수 있습니다.
MAPVK_VK_TO_CHAR
2
uCode 매개 변수는 가상 키 코드이며 반환 값의 낮은 순서 단어로 변환되지 않은 문자 값으로 변환됩니다. 배달 못한 키(분음 부호)는 반환 값의 위쪽 비트를 설정하여 표시됩니다. 변환이 없으면 함수는 0을 반환합니다. 설명 부분을 참조하세요.
MAPVK_VSC_TO_VK_EX
3
uCode 매개 변수는 검사 코드이며 왼쪽 키와 오른쪽 키를 구분하는 가상 키 코드로 변환됩니다. 변환이 없으면 함수는 0을 반환합니다.
Windows Vista 이상:uCode 값의 상위 바이트에는 확장 검사 코드를 지정하는 0xe0 또는 0xe1 포함될 수 있습니다.
MAPVK_VK_TO_VSC_EX
4
Windows Vista 이상:uCode 매개 변수는 가상 키 코드이며 검사 코드로 변환됩니다. 왼쪽 키와 오른쪽 키를 구분하지 않는 가상 키 코드인 경우 왼쪽 검사 코드가 반환됩니다. 스캔 코드가 확장 검사 코드인 경우 반환된 값의 상위 바이트에 확장 검사 코드를 지정하는 0xe0 또는 0xe1 포함됩니다. 변환이 없으면 함수는 0을 반환합니다.

[in, out, optional] dwhkl

형식: HKL

지정된 코드를 번역하는 데 사용할 입력 로캘 식별자입니다. 이 매개 변수는 LoadKeyboardLayout 함수에서 이전에 반환한 모든 입력 로캘 식별자일 수 있습니다.

반환 값

형식: UINT

반환 값은 uCodeuMapType 값에 따라 스캔 코드, 가상 키 코드 또는 문자 값입니다. 번역이 없으면 반환 값은 0입니다.

설명

입력 로캘 식별자는 음성 텍스트 변환기, IME(Input Method 편집기) 또는 다른 형식의 입력을 포함할 수도 있으므로 키보드 레이아웃보다 광범위한 개념입니다.

애플리케이션은 MapVirtualKeyEx를 사용하여 검사 코드를 가상 키 코드 상수 VK_SHIFT, VK_CONTROLVK_MENU 변환할 수 있으며 그 반대의 경우도 마찬가지입니다. 이러한 변환은 Shift, Ctrl 또는 Alt 키의 왼쪽 인스턴스와 오른쪽 인스턴스를 구분하지 않습니다.

애플리케이션은 uCode가 다음 가상 키 코드 상수 중 하나로 설정된 MapVirtualKeyEx를 호출하여 이러한 키 중 하나의 왼쪽 또는 오른쪽 instance 해당하는 검사 코드를 가져올 수 있습니다.

  • VK_LSHIFT
  • VK_RSHIFT
  • VK_LCONTROL
  • VK_RCONTROL
  • VK_LMENU
  • VK_RMENU

이러한 왼쪽 및 오른쪽 구분 상수는 GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState, MapVirtualKeyMapVirtualKeyEx 함수를 통해서만 애플리케이션에서 사용할 수 있습니다. 가상 키 코드의 전체 테이블 목록은 가상 키 코드를 참조하세요.

MAPVK_VK_TO_CHAR 모드 가상 키 코드에서 'A'.'입니다. Z' 키는 대문자 'A'로 변환됩니다. 현재 자판 배열에 관계없이 Z 문자입니다. 가상 키 코드를 해당 문자로 변환하려면 ToAscii 함수를 사용합니다.

참고

winuser.h 헤더는 MAPVirtualKeyEx를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 winuser.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll

추가 정보