HACCEL LoadAccelerators( HINSTANCE hInstance, LPCTSTR lpTableName );
리소스로부터 액셀러레이터 테이블을 읽어들인 후 그 핸들을 리턴한다.
lpTableName
액셀러레이터 테이블의 이름 문자열 포인터이되 MAKEINTRESOURCE 매크로를 사용하여 테이블 이름을 입력한다.
int TranslateAccelerator( HWND hWnd, HACCEL hAccTable, LPMSG lpMsg );
키보드 메시지를 WM_COMMAND 메시지로 변경하여 액셀러레이터가 동작할 수 있도록 한다.
액셀러레이터 Ctrl+A 가 입력되었다고 가정했을 때 Ctrl+A 는 액셀러레이터이기 이전에 키보드로부터의 입력이므로 먼저 WM_KEYDOWN 메시지가 발생할 것이고 그대로 내버려 두변 WndProc 의 WM_KEYDOWN 메시지 처리 루틴에서 먼저 이 키값을 처리해 버릴 것이다.
TranslateAccelerator 함수는 lpMsg 의 키보드 입력값을 읽어 이 키값이 hAccTable 에 있는지 먼저 살펴보고 있을 경우 그 키에 해당하는 WM_COMMAND 메시지를 hWnd 윈도우로 전달하고 TRUE 를 리턴해 버린다.
WM_KEYDOWN 메시지는 중간에서 다른 메시지로 변형되거나 추가로 발생시키는 경우가 빈번하다.
WM_KEYDOWN -> TranslateAccelerator -> WM_COMMAND( 변형 )
-> TranslateMessage -> WM_CHAR( 추가 발생 )