다음을 통해 공유


ToAscii 함수(winuser.h)

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

지정된 코드를 변환하는 데 사용할 키보드 레이아웃에 대한 핸들을 지정하려면 ToAsciiEx 함수를 사용합니다.

참고

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

구문

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

매개 변수

[in] uVirtKey

형식: UINT

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

[in] uScanCode

형식: UINT

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

[in, optional] lpKeyState

형식: const BYTE*

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

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

[out] lpChar

형식: LPWORD

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

[in] uFlags

형식: UINT

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

반환 값

형식: int

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

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

설명

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

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

NUM LOCK은 키보드 동작에 영향을 주는 토글 키이지만 ToAsciiuVirtKey 매개 변수만으로도 숫자 키(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

추가 정보

개념

키보드 입력

OemKeyScan

참조

ToAsciiEx

ToUnicode

VkKeyScan