다음을 통해 공유


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_INITMENUWM_INITMENUPOPUP 메시지를 보냅니다. 그러나 다음 조건이 있는 경우 이러한 메시지는 전송되지 않습니다.

  • 창을 사용할 수 없습니다.
  • 가속기 키 조합은 메뉴의 항목에 해당하지 않으며 창이 최소화됩니다.
  • 마우스 캡처가 적용됩니다. 마우스 캡처에 대한 자세한 내용은 SetCapture 함수를 참조하세요.
지정된 창이 활성 창이고 창에 키보드 포커스가 없는 경우(일반적으로 창이 최소화된 경우) TranslateAcceleratorWM_KEYUP 메시지와 WM_KEYDOWN 메시지 대신 WM_SYSKEYUPWM_SYSKEYDOWN 메시지를 변환합니다.

메뉴를 소유하는 창이 최소화될 때 메뉴 항목에 해당하는 액셀러레이터 키 입력이 발생하면 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

참고 항목

개념

CreateAcceleratorTable

GetMessage

키보드 가속기

LoadAccelerators

MSG

peekMessage

참조

SetCapture

TranslateMessage

WM_COMMAND

WM_INITMENU

WM_INITMENUPOPUP

WM_KEYDOWN

WM_SYSCOMMAND

WM_SYSKEYDOWN