액셀러레이터 테이블

액셀러레이터 키 테이블 은 각 개별 가속기 정의 ACCEL 구조체의 배열 이루어져 있습니다. 다음 정보를 포함 하는 각 ACCEL 구조체:

개발자는 주어진된 주제에 대 한 액셀러레이터 키 입력을 처리 하려면 메시지 루프는 스레드의 메시지 큐와 관련 된 TranslateAccelerator 함수를 호출 해야 합니다. TranslateAccelerator 함수는 액셀러레이터 키 테이블에 있는 항목과 일치 하는 키 조합을 확인 하는 메시지 큐에 대 한 키보드 입력을 모니터링 합니다. TranslateAccelerator 일치 WM_COMMAND 또는 WM_SYSCOMMAND 메시지에 키보드 입력 (즉, WM_KEYUPWM_KEYDOWN 메시지)를 변환 하 고 지정 된 창의 창 프로시저에서 메시지를 보냅니다. 다음은 액셀러레이터 처리 방법.

WM_COMMAND 메시지 메시지 생성 TranslateAccelerator 를 발생 시킨 가속기의 식별자를 포함 합니다. 창 프로시저 메시지의 소스를 결정 하는 식별자를 검사 하 고 메시지를 적절 하 게 처리.

액셀러레이터 테이블은 두 개의 서로 다른 수준에서 존재합니다. 모든 응용 프로그램에 적용 되는 단일, 시스템 전체의 액셀러레이터 키 테이블을 유지 하는 시스템. 응용 프로그램 시스템 액셀러레이터 키 테이블을 수정할 수 없습니다. 에 대 한 설명은 시스템 액셀러레이터 키 테이블에서 제공 하는 바로 다음 웹 사이트를 참조 하십시오. 액셀러레이터 키 할당.

시스템은 또한 각 응용 프로그램에 대 한 액셀러레이터 테이블을 유지합니다. 응용 프로그램 자체 windows와 함께 사용 하기 위한 액셀러레이터 테이블의 어떤 수를 정의할 수 있습니다. 각 테이블을 식별 하는 고유한 32 비트 핸들 (HACCEL). 그러나, 하나의 가속기 테이블 특정된 스레드에 대 한 한 번에 활성화할 수 있습니다. TranslateAccelerator 함수에 전달 된 가속기 표 핸들 액셀러레이터 테이블은 활성 스레드를 결정 합니다. 활성 액셀러레이터 테이블 TranslateAccelerator 를 다른 가속기 표 핸들을 전달 하 여 언제 든 지 변경할 수 있습니다.

 

Index