단축키( ShortCut )
반드시 Alt 키와 함께 사용해야 하며 메뉴에 있는 항목을 키보드로 선택하는 빠른 방법
액셀러레이터( Accelerator )
메뉴와 상관없이 언제든지 사용할 수 있는 키
메뉴 편집기의 속성창에 Caption 속성의 편집으로 단축키와 액셀러레이터를 지정할 수 있다.
캡션에 포함된 & 문자가 단축키를 지정하는데 & 다음에 있는 문자가 단축키가 되며 지정된 문자에 밑줄이 그어진다.
액셀러레이터는 캡션 뒤에 \t 로 적당히 칸을 띄운 후 키조합을 적는다.
단축키는 바로 적용이 되지만 메뉴 리스트에 출력되는 액셀러레이터는 별도의 리소스를 작성해야 한다.
액셀러레이터 키 편집기의 각 란의 의미
ID
액셀러레이터의 ID 이며 프로그램 소스에서 액셀러레이터를 참조할 때 이 값을 사용한다. 메뉴의 ID 를 작성하는 방법과 동일한 규칙대로 ID 를 작성하면 된다. 보통 메뉴 항목에 대해 일대일로 대응되는 경우가 많아 메뉴의 ID 와 일치시키는 것이 보통이다.
Key
액셀러레이터로 사용할 키를 선택한다. 펑션키나 특수키를 사용하려면 드롭다운 리스트를 열어 선택하고 알파벳키나 숫자키를 선택하려면 바로 아래쪽의 Next Key Typed 버튼을 누른 후 원하는 키를 누르면 된다.
Modifiers
키와 함께 눌러질 조합키를 선택한다. Ctrl, Alt, Shift 를 개별적으로 또는 여러 개를 한꺼번에 선택 할 수 있다.
Type
Key 값이 아스키 코드인지 가상키 코드인지를 설정한다. 가상 키코드가 훨씬 더 많은 키를 지정할 수 있으므로 보통 가상키를 지정한다.
액셀러레이터를 추가하는 코드
HACCEL hAccel;
hAccel = LoadAccelerators( hInstance, MAKEINTRESOURCE( IDR_ACCELERATOR1 ) );
while( GetMessage( &Message, NULL, 0, 0 ) ) {
if( !TranslateAccelerator( hWnd, hAccel, &Message ) ) {
TranslateMessage( &Message );
DispatchMessage( &Message );
}
}