다음을 통해 공유


WM_UNICHAR 메시지

애플리케이션에서 WM_UNICHAR 메시지를 사용하여 입력을 다른 창에 게시할 수 있습니다. 눌린 키의 문자 코드가 이 메시지에 포함됩니다. UNICODE_NOCHAR로 설정된 wParam이 있는 메시지를 보내 대상 앱이 WM_UNICHAR 메시지를 처리할 수 있는지 테스트합니다.

#define WM_UNICHAR                      0x0109

매개 변수

wParam

키의 문자 코드입니다.

wParamUNICODE_NOCHAR이며 애플리케이션이 이 메시지를 처리하는 경우 TRUE를 반환합니다. DefWindowProc 함수는 FALSE(기본값)를 반환합니다.

wParamUNICODE_NOCHAR가 아닐 경우 FALSE를 반환합니다. 유니코드 DefWindowProc는 동일한 매개 변수를 사용하여 WM_CHAR 메시지를 게시하고 ANSI DefWindowProc 함수는 해당 ANSI 문자를 사용하여 하나 또는 두 개의 WM_CHAR 메시지를 게시합니다.

lParam

다음 표와 같이 반복 수, 검사 코드, 확장 키 플래그, 컨텍스트 코드, 이전 키 상태 플래그 및 전환 상태 플래그입니다.

비트 의미
0-15 현재 메시지의 반복 횟수입니다. 이 값은 사용자가 키를 누르고 있는 결과로 키 입력이 자동 반복되는 횟수입니다. 키 입력이 충분히 오래 유지되면 여러 개의 메시지가 전송되지만 반복 횟수는 누적되지 않습니다.
16-23 스캔 코드입니다. 이 값은 OEM에 따라 달라집니다.
24 키가 고급 101키 또는 102키 키보드에 표시되는 오른쪽 Alt 및 Ctrl 키와 같은 확장 키인지 여부를 나타냅니다. 확장 키면 값이 1이고 확장 키가 아니면 0입니다.
25-28 예약되어 있으므로 사용하지 마세요.
29 컨텍스트 코드입니다. 키를 누른 상태에서 Alt 키를 누르면 값이 1이고 그러지 않으면 0입니다.
30 이전 키 상태입니다. 메시지가 전송되기 전에 키가 눌려져 있으면 값이 1이고 키가 눌려져 있지 않으면 0입니다.
31 전환 상태입니다. 눌렀던 키를 놓는 경우 값은 1이며 키를 누르는 경우 0입니다.

자세한 내용은 키 입력 메시지 플래그를 참조하세요.

반환 값

애플리케이션은 이 메시지를 처리하는 경우 0를 반환해야 합니다.

설명

WM_UNICHAR 메시지는 WM_CHAR와 비슷하지만 UTF(Unicode Transformation Format)-32를 사용하는 반면 WM_CHAR는 UTF-16을 사용합니다.

이 메시지는 ANSI 창에 유니코드 문자를 보내거나 게시하도록 설계되었으며 유니코드 보조 평면 문자를 처리할 수 있습니다.

누른 키와 생성된 문자 메시지 사이에 반드시 일대일 대응이 있는 것은 아니므로 lParam 매개 변수의 상위 단어에 있는 정보는 일반적으로 애플리케이션에 유용하지 않습니다. 상위 단어의 정보는 WM_UNICHAR 메시지 게시 이전의 최신 WM_KEYDOWN 메시지에만 적용됩니다.

향상된 101키 및 102키 키보드의 경우 확장 키는 키보드의 기본 섹션에 있는 오른쪽 ALT 키와 오른쪽 CTRL 키입니다. 숫자 키패드의 왼쪽에 있는 클러스터의 INS, DEL, HOME, END, PAGE UP, PAGE DOWN 및 화살표 키, 숫자 키패드의 나누기(/) 및 ENTER 키입니다. 일부 다른 키보드는 lParam 매개 변수의 확장 키 비트를 지원할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버
Windows Server 2003 [데스크톱 앱만 해당]
헤더
Winuser.h(Windows.h 포함)

추가 정보