다음을 통해 공유


WM_SYSKEYUP 메시지

ALT 키를 누른 상태에서 사용자가 누른 키를 놓을 때 키보드 포커스가 있는 창에 게시됩니다. 또한 현재 키보드 포커스가 있는 창이 없는 경우에도 발생합니다. 이 경우 WM_SYSKEYUP 메시지가 활성 창으로 전송됩니다. 메시지를 받는 창은 lParam 매개 변수에서 컨텍스트 코드를 확인하여 이러한 두 컨텍스트를 구분할 수 있습니다.

창은 WindowProc 함수를 통해 이 메시지를 받습니다.

#define WM_SYSKEYUP                     0x0105

매개 변수

wParam

릴리스되는 키의 가상 키 코드입니다. Virtual-Key 코드를 참조하세요.

lParam

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

비트 의미
0-15 현재 메시지의 반복 횟수입니다. 이 값은 사용자가 키를 누르고 있는 결과로 키 입력이 자동 반복되는 횟수입니다. 반복 횟수는 WM_SYSKEYUP 메시지에 대해 항상 1입니다.
16-23 스캔 코드입니다. 이 값은 OEM에 따라 달라집니다.
24 키가 고급 101키 또는 102키 키보드에 표시되는 오른쪽 Alt 및 Ctrl 키와 같은 확장 키인지 여부를 나타냅니다. 확장 키인 경우 값은 1입니다. 그렇지 않으면 0입니다.
25-28 예약되어 있으므로 사용하지 마세요.
29 컨텍스트 코드입니다. 키를 놓은 상태에서 ALT 키를 누른 경우 값은 1입니다. 키보드 포커스가 있는 창이 없으므로 WM_SYSKEYUP 메시지가 활성 창에 게시되면 0입니다.
30 이전 키 상태입니다. WM_SYSKEYUP 메시지에 대한 값은 항상 1입니다.
31 전환 상태입니다. WM_SYSKEYUP 메시지에 대한 값은 항상 1입니다.

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

반환 값

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

설명

DefWindowProc 함수는 F10 키 또는 ALT 키가 릴리스된 경우 최상위 창에 WM_SYSCOMMAND 메시지를 보냅니다. 메시지의 wParam 매개 변수는 SC_KEYMENU로 설정됩니다.

컨텍스트 코드가 0이면 메시지를 TranslateAccelerator 함수로 전달할 수 있습니다. 이 함수는 문자 키 메시지 대신 일반 키 메시지인 것처럼 처리합니다. 이를 통해 활성 창에 키보드 포커스가 없더라도 활성 창에서 액셀러레이터 키를 사용할 수 있습니다.

고급 101키 및 102키 키보드에서 확장 키는 키보드의 주요 섹션에 있는 오른쪽 Alt 및 Ctrl 키, 숫자 키패드 왼쪽에 있는 클러스터의 Ins, Del, Home, End, Page Up, Page Down 및 화살표 키, 숫자 키패드의 나누기(/) 및 Enter 키입니다. 다른 키보드는 lParam 매개 변수의 확장 키 비트를 지원할 수 있습니다.

미국 이외의 경우 향상된 102키 키보드, 오른쪽 ALT 키는 CTRL+ALT 키로 처리됩니다. 다음 표에서는 사용자가 이 키를 눌렀다가 놓을 때 발생하는 메시지 시퀀스를 보여 줍니다.

메시지 가상 키 코드
WM_KEYDOWN VK_CONTROL
WM_KEYDOWN VK_MENU
WM_KEYUP VK_CONTROL
WM_SYSKEYUP VK_MENU

요구 사항

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

추가 정보