반응형
// 핫키 설정 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번째 인자값을 바꿔주면 된다.
반응형
'Programming > Delphi' 카테고리의 다른 글
| 폼이 서서히 나타나고 서서히 사라지기 (플래쉬효과) (0) | 2011.04.07 |
|---|---|
| FieldByName 포맷 설정하기 (0) | 2011.03.16 |
| PostMessage 로 Tab, Shift+Tab 효과 내기 (0) | 2011.01.21 |
| 방향키로 에디트박스 포커스 이동하기 (0) | 2011.01.21 |
| sleep 대체 함수 (0) | 2011.01.21 |