|
컨트롤에서 키입력에 따라 원하는 기능을 구현하려면...
먼저 Form1 의 Property 중의 KeyPreview 항목값을 true 로 설정한 뒤...
Function Key 들(VK_LEFT,VK_UP,...)은 OnKeyDown 이벤트에서 처리해야 하고
일반 키(VK_RETURN,...)들은 OnKeyPress 이벤트에서 처리해야 합니다.
OnEnter 이벤트는 해당 컨트롤레 Focus 가 주어졌을 때 발생되는 이벤트입니다.
VK_RETURN, VK_LEFT, ...등등은 일반 정수값을 사용자가 사용하기 쉽게 재정의한 것에 불과합니다.
Include 폴더에 있는 winuser.h 파일을 열어보니 아래와 같이 정의되어 있군요. 일부분만 발췌했습니다.
#define VK_ESCAPE 0x1B
#define VK_CONVERT 0x1C
#define VK_NONCONVERT 0x1D
#define VK_ACCEPT 0x1E
#define VK_MODECHANGE 0x1F
#define VK_SPACE 0x20
#define VK_PRIOR 0x21
#define VK_NEXT 0x22
#define VK_END 0x23
#define VK_HOME 0x24
#define VK_LEFT 0x25
#define VK_UP 0x26
#define VK_RIGHT 0x27
#define VK_DOWN 0x28
#define VK_SELECT 0x29
#define VK_PRINT 0x2A
#define VK_EXECUTE 0x2B
#define VK_SNAPSHOT 0x2C
#define VK_INSERT 0x2D
#define VK_DELETE 0x2E
#define VK_HELP 0x2F
heartsim 님이 쓰신 글 :
: 안녕하세요.답변 감사합니다.^^
: 근데 말씀대로 해봤는데 Enter키를 눌렀을 때 Edit내용이 GBgrid에 전달이 안되더라구요.
: 아무런 반응도 하지 않는군요.
: 제가 OnKeyDown를 써서 Edit에 숫자를 증가 감소시키도록 한 소스에 5번째로 VK_RETURN을 써서
: 말씀대로 했는데 안 되는군요.
: switch(key)
: {
: case VK_LEFT:
: case VK_UP: 1씩 증가..................
: case VK_RIGHT:
: case VK_DOWN: 1씩 감소..................
:
: ---> case VK_RETURN: Edit내용을 엔터쳤을 때 GBgrid에 표시토록 함
: }
:
: 전에는 OnKeyPress이벤트를 써서 조금 됐는데, 소스상에 문제가 있어서 그런지 됐다 안 됐다 하거든요.
: 그래서 질문을 드렸는데, 바쁘신 중에 죄송하지만 OnKeyPress와 OnEnter 그리고 VK_RETUR의 차이점에
: 대해 답변 주시면 감사하겠습니다.^^
:
: 즐거운 하루 되세요.
:
:
:
: 박재욱.사탕 님이 쓰신 글 :
: : OnKeyDown()에서요.
: : if(Key == VK_RETURN){
: : 작업 내용..
: : ...........
: : }
: : 하시면 될꺼에요.
: :
: : heartsim 님이 쓰신 글 :
: : : 안녕하세요.
: : : 빌더 초보입니다.
: : : 한참 프로그램을 짜고 있는데, 의외로 쉽게 생각했던 것이 잘 안되서요.
: : :
: : : 다름 아니오라, Edit컴포넌트에 숫자를 입력한 후 Enter키를 쳤을 때 데이터가
: : : GBgrid필드에 입력되게 할려고 하는데, 그 때 사용하는 이벤트가 무엇인지요...
: : : OnEnter와 OnKeyPress 이벤트 중에 하나가 아닌가 듯 싶은데요...잘 안되서요..^^
: : :
: : : 답변 부탁드립니다.
: : :
: : : 즐거운 하루되세요.....
|