TranslateAcceleratorA 함수(winuser.h)
메뉴 명령에 대한 가속기 키를 처리합니다. 함수는 WM_KEYDOWN 또는 WM_SYSKEYDOWN 메시지를 WM_COMMAND 또는 WM_SYSCOMMAND 메시지(지정된 가속기 테이블에 키에 대한 항목이 있는 경우)로 변환한 다음 지정된 창 프로시저에 직접 WM_COMMAND 또는 WM_SYSCOMMAND 메시지를 보냅니다. TranslateAccelerator 는 창 프로시저가 메시지를 처리할 때까지 반환되지 않습니다.
구문
int TranslateAcceleratorA(
[in] HWND hWnd,
[in] HACCEL hAccTable,
[in] LPMSG lpMsg
);
매개 변수
[in] hWnd
형식: HWND
메시지를 번역할 창에 대한 핸들입니다.
[in] hAccTable
형식: HACCEL
액셀러레이터 테이블에 대한 핸들입니다. 가속기 테이블은 LoadAccelerators 함수를 호출하여 로드되었거나 CreateAcceleratorTable 함수를 호출하여 만들어야 합니다.
[in] lpMsg
형식: LPMSG
GetMessage 또는 PeekMessage 함수를 사용하여 호출 스레드의 메시지 큐에서 검색된 메시지 정보를 포함하는 MSG 구조체에 대한 포인터입니다.
반환 값
형식: int
함수가 성공하면 반환 값이 0이 아닙니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
설명
이 함수가 메뉴 또는 컨트롤에서 보낸 메시지에서 보내는 메시지를 구분하기 위해 WM_COMMAND 또는 WM_SYSCOMMAND 메시지의 wParam 매개 변수의 상위 단어에는 값 1이 포함됩니다.
창 메뉴에서 항목을 선택하는 데 사용되는 가속기 키 조합은 WM_SYSCOMMAND 메시지로 변환됩니다. 다른 모든 가속기 키 조합은 WM_COMMAND 메시지로 변환됩니다.
TranslateAccelerator가 0이 아닌 값을 반환하고 메시지가 번역되는 경우 애플리케이션은 TranslateMessage 함수를 사용하여 메시지를 다시 처리해서는 안 됩니다.
액셀러레이터는 메뉴 명령에 해당할 필요가 없습니다.
가속기 명령이 메뉴 항목에 해당하는 경우 사용자가 메뉴를 표시하려고 하는 것처럼 애플리케이션 이 WM_INITMENU WM_INITMENUPOPUP 메시지를 보냅니다. 그러나 다음 조건이 있는 경우 이러한 메시지는 전송되지 않습니다.
- 창을 사용할 수 없습니다.
- 바로 가기 키 조합은 창 메뉴의 항목에 해당하지 않으며 창이 최소화됩니다.
- 마우스 캡처가 적용됩니다. 마우스 캡처에 대한 자세한 내용은 SetCapture 함수를 참조하세요.
메뉴를 소유하는 창이 최소화되면 메뉴 항목에 해당하는 가속기 키 입력이 발생하는 경우 TranslateAccelerator 는 WM_COMMAND 메시지를 보내지 않습니다. 그러나 창 메뉴 또는 창 메뉴의 항목과 일치하지 않는 가속기 키 입력이 발생하는 경우 함수는 창이 최소화되더라도 WM_COMMAND 메시지를 보냅니다.
예제
참고
winuser.h 헤더는 TRANSLATEAccelerator를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | winuser.h(Windows.h 포함) |
라이브러리 | User32.lib |
DLL | User32.dll |
추가 정보
개념
참조