C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[19365] Re:KeyDown....
유영인.Chris [cuperido] 1280 읽음    2002-06-14 13:22
해당 Form의 KeyPreview 프로퍼티를 true 로 설정하시면, 해당 폼에 있는 어느 컨트롤에서나 키가 눌리면 Form의 키 이벤트가 발생합니다.

그리고, NumLock키의 On/Off의 여부에 따라 값은 변화됩니다.

void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
{

ShowMessage(Key);

}

이런식으로 KeyDown에서 눌리면 들어오는 실질적인 값을 찍어내서 메모해 주셨다가, 실전에 사용하시면 될 것 같습니다.

그리고, 폼이 아닌 다른 전체의 곳에서 받고 싶으시다면 Key Hooking을 하셔야 하는데, 이 경우에는 NumLock 키의 여부의 관계없이 키의 값이 일정하게 뜹니다. 이 말씀은 Key Hooking에서 사용하는 값과 KeyDown에서 사용하는 값은 조금 차이가 있다는 말씀입니다. Key Hooking에서 나오는 값은 대문자나 소문자와 상관없이 실질적인 키보드 위치를 뜻하고, KeyDown에서는 어떤 문자가 입력받았는지 나타내는 아스키코드 값이 넘어오는 것입니다.

KeyHooking 예제가 필요하시다면
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=18505
번을 참고하시면 좋겠네요.

물론, 이 두 값 들은 다른 어떤 언어에도 적용됩니다.



질문요! 님이 쓰신 글 :
: 프로그램의 어디서든지 키를 누르면 키다운 함수를 호출하는 걸 만들려고 하는데.. edit를 할때는 잘 했는데 에디트가 없으니.. 어떡하는지 모르겠네요.. 어떡해야 할수 잇는지 가르쳐 주심 고맙겠습니다.
:
: 한가지더.. NUMPAD 에서의  NUMLOCK 꺼졌을때 Key는 VK_LEFT는 안되던데 어떤 값을 가지나요?
:
: 빌더에서만 쓰는 값말고.. 다른 데서도 공톧적으로 발생하는 값을 알고 싶습니다.

+ -

관련 글 리스트
19337 KeyDown.... 질문요! 849 2002/06/13
19365     Re:KeyDown.... 유영인.Chris 1280 2002/06/14
19370         Re:Re:KeyDown.... 질문요! 870 2002/06/14
19381             Re:Re:Re:KeyDown.... 유영인.Chris 1088 2002/06/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.