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 함수를 참조하세요.
지정된 창이 활성 창이고 창에 키보드 포커스가 없는 경우(일반적으로 창이 최소화된 경우) TranslateAcceleratorWM_KEYUPWM_KEYDOWN 메시지 대신 WM_SYSKEYUP 변환하고 메시지를 WM_SYSKEYDOWN .

메뉴를 소유하는 창이 최소화되면 메뉴 항목에 해당하는 가속기 키 입력이 발생하는 경우 TranslateAcceleratorWM_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

메시지

PeekMessage

참조

SetCapture

TranslateMessage

WM_COMMAND

WM_INITMENU

WM_INITMENUPOPUP

WM_KEYDOWN

WM_SYSCOMMAND

WM_SYSKEYDOWN