다음을 통해 공유


WM_SYSKEYDOWN 메시지

사용자가 F10 키를 눌러 메뉴 모음을 활성화하거나 Alt 키를 누른 상태로 다른 키를 누르면 키보드 포커스가 있는 창에 게시됩니다. 현재 키보드 포커스가 있는 창이 없는 경우에도 발생합니다. 이 경우 WM_SYSKEYDOWN 메시지가 활성 창에 전송됩니다. 메시지를 받는 창은 lParam 매개 변수에서 컨텍스트 코드를 확인하여 이 두 컨텍스트를 구분할 수 있습니다.

#define WM_SYSKEYDOWN                   0x0104

매개 변수

wParam

누르고 있는 키의 가상 키 코드입니다. 가상 키 코드를 참조하세요.

lParam

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

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

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

반환 값

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

설명

DefWindowProc 함수는 지정된 키를 검사하고 키가 Tab 또는 Enter인 경우 WM_SYSCOMMAND 메시지를 생성합니다.

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

자동 반복으로 인해 WM_SYSKEYUP 메시지를 보내기 전에 둘 이상의 WM_SYSKEYDOWN 메시지가 발생할 수 있습니다. 이전 키 상태(비트 30)를 사용하여 WM_SYSKEYDOWN 메시지가 첫 번째 누름 전환을 나타내는지 반복된 누름 전환을 나타내는지를 확인할 수 있습니다.

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

또한 이 메시지는 사용자가 Alt 키를 누르지 않고 F10 키를 누를 때마다 전송됩니다.

요구 사항

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

추가 정보