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[데스크톱 앱만] |
헤더 |
|