Programming/Delphi

Hot Key(단축키) 설정하기

통통만두 2011. 2. 1. 10:28
반응형

// 핫키 설정 FormCreate 이벤트
RegisterHotKey(Handle, WM_USER + 1, MOD_CONTROL, Ord('1'));
RegisterHotKey(Handle, WM_USER + 2, MOD_CONTROL, Ord('2'));
RegisterHotKey(Handle, WM_USER + 3, MOD_CONTROL, Ord('3'));
RegisterHotKey(Handle, WM_USER + 4, MOD_CONTROL, Ord('4'));
RegisterHotKey(Handle, WM_USER + 5, MOD_CONTROL, Ord('5'));
RegisterHotKey(Handle, WM_USER + 6, MOD_CONTROL, Ord('6'));
RegisterHotKey(Handle, WM_USER + 7, MOD_CONTROL, Ord('7'));
RegisterHotKey(Handle, WM_USER + 8, MOD_CONTROL, Ord('8'));
RegisterHotKey(Handle, WM_USER + 9, MOD_CONTROL, Ord('9'))

// 핫키 해제 FormDestroy 이벤트
UnRegisterHotKey(Handle, WM_USER + 1);
UnRegisterHotKey(Handle, WM_USER + 2);
UnRegisterHotKey(Handle, WM_USER + 3);
UnRegisterHotKey(Handle, WM_USER + 4);
UnRegisterHotKey(Handle, WM_USER + 5);
UnRegisterHotKey(Handle, WM_USER + 6);
UnRegisterHotKey(Handle, WM_USER + 7);
UnRegisterHotKey(Handle, WM_USER + 8);
UnRegisterHotKey(Handle, WM_USER + 9);

// 함수 원형 선언
procedure OnWMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;

// 함수 구현
case Msg.HotKey of
  WM_USER + 1 : ShowMessage('Ctrl + 1);
  WM_USER + 2 : ShowMessage('Ctrl + 2);
  WM_USER + 3 : ShowMessage('Ctrl + 3);
  WM_USER + 4 : ShowMessage('Ctrl + 4);
  WM_USER + 5 : ShowMessage('Ctrl + 5);
  WM_USER + 6 : ShowMessage('Ctrl + 6);
  WM_USER + 7 : ShowMessage('Ctrl + 7);
  WM_USER + 8 : ShowMessage('Ctrl + 8);
  WM_USER + 9 : ShowMessage('Ctrl + 9);
end;



여러가지 방법으로 단축키를 설정하는 방법(TMainMenu, TApplicationEvents Etc..)이 있지만, 이 방법도 있길래 써봤다.

위의 방법은 Ctrl이 기준인데, Alt나 다른것으로 하고 싶다면 3번째 인자값을 바꿔주면 된다.

반응형