ToAsciiEx 함수(winuser.h)

지정된 가상 키 코드 및 키보드 상태를 하나 이상의 해당 문자로 변환합니다. 이 함수는 입력 언어 및 입력 로캘 식별자로 식별된 물리적 키보드 레이아웃을 사용하여 코드를 변환합니다.

참고

이 메서드는 단일 키 누름에서 여러 문자(예: 합자) 및/또는 보조 유니코드 문자를 생성할 수 있는 일부 키보드 레이아웃 에서 제대로 작동하지 않을 수 있습니다. 이러한 경우를 올바르게 처리하는 ToUnicode 또는 ToUnicodeEx 메서드를 사용하는 것이 좋습니다.

구문

int ToAsciiEx(
  [in]           UINT       uVirtKey,
  [in]           UINT       uScanCode,
  [in, optional] const BYTE *lpKeyState,
  [out]          LPWORD     lpChar,
  [in]           UINT       uFlags,
  [in, optional] HKL        dwhkl
);

매개 변수

[in] uVirtKey

형식: UINT

번역할 가상 키 코드입니다. Virtual-Key 코드를 참조하세요.

[in] uScanCode

형식: UINT

번역할 키의 하드웨어 검사 코드입니다. 키가 눌려지지 않으면 이 값의 상위 비트가 설정됩니다.

[in, optional] lpKeyState

형식: const BYTE*

현재 키보드 상태를 포함하는 256 바이트 배열에 대한 포인터입니다. 배열의 각 요소(바이트)에는 하나의 키 상태가 포함됩니다. 바이트의 상위 비트가 설정되면 키가 다운(누름)됩니다.

낮은 비트(설정된 경우)는 키가 켜진 것을 나타냅니다. 이 함수에서는 CAPS LOCK 키의 토글 비트만 관련이 있습니다. NUM LOCK 및 SCOLL LOCK 키의 토글 상태는 무시됩니다.

[out] lpChar

형식: LPWORD

변환된 문자를 수신하는 버퍼에 대한 포인터입니다(또는 낮은 순서의 바이트에 첫 번째 문자가 포함되고 상위 바이트에 두 번째 문자가 포함된 단일 WORD 값으로 압축된 두 문자).

[in] uFlags

형식: UINT

메뉴가 활성 상태이면 이 매개 변수는 1이어야 하며, 그렇지 않으면 0이어야 합니다.

[in, optional] dwhkl

형식: HKL

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

반환 값

형식: int

반환 값은 다음 값 중 하나입니다.

반환 값 Description
0
지정된 가상 키에 키보드의 현재 상태에 대한 변환이 없습니다.
1
한 문자가 버퍼에 복사되었습니다.
2
두 문자가 버퍼에 복사되었습니다. 일반적으로 키보드 레이아웃에 저장된 데드 키 문자(악센트 또는 분음 부호)를 지정된 가상 키로 구성하여 단일 문자를 구성할 수 없는 경우에 발생합니다.

설명

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

이전 배달 못한 키가 키보드 레이아웃에 저장되기 때문에 ToAsciiEx 함수에 제공된 매개 변수로는 가상 키 코드를 변환하기에 충분하지 않을 수 있습니다.

일반적으로 ToAsciiEx 는 가상 키 코드를 기반으로 변환을 수행합니다. 그러나 경우에 따라 uScanCode 매개 변수의 비트 15를 사용하여 키 누름과 키 릴리스를 구분할 수 있습니다. 검사 코드는 ALT+숫자 키 조합을 변환하는 데 사용됩니다.

NUM LOCK은 키보드 동작에 영향을 주는 토글 키이지만 ToAsciiExuVirtKey 매개 변수만으로도 숫자 키(VK_DECIMAL, VK_NUMPAD0 VK_NUMPAD9)에서 커서 이동 키(VK_HOME, VK_INSERT 등)를 구분하기에 충분하기 때문에 lpKeyState(VK_NUMLOCK)의 토글 설정(하위 - 비트)을 무시합니다.

요구 사항

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

추가 정보

개념

키보드 입력

LoadKeyboardLayout

MapVirtualKeyEx

참조

ToUnicodeEx

VkKeyScan