|
VK_RETURN가 어떻게 엔터키가 되는지에 대해 설명을 드리자면
타자기에 대해서 약간 알아볼 필요가 있습니다. Enter키가 왜 Return인가 하면 키보드의 전신이 타자기라고 생각하면 이해가 쉬울겁니다. 타자기에서는 줄바꿈을 할때마다 글자를 찍는 헤더가 라인의 맨 앞으로 이동합니다. 이 동작은 Return(돌아감)키를 눌렀을때 동작하였습니다. 그래서 현재 키보드에 있는 Enter키가 눌리게 되면 CR(Carrage Return, 아스키문자13), LF(Line Feed, 아스키문자10)가 입력되는 것입니다. (유닉스계열에서는 LF만 입력됩니다.) 또한 과거의 키보드는 Enter키를 Return 으로 인쇄해 놓았던 적도 있었습니다.
따라서 현재는 Enter키와 Return키의 의미가 동일하다고 보아도 무방합니다.
VK_RETURN는 Windows.h 파일안에 13 이라는 값으로 정의되어 있습니다.
이외에도 왼쪽방향키는 VK_UP(37), 스페이스키는 VK_SPACE(32), 등등..
VK_XXXXX 문자는 키보드의 개별 키값을 정의해 놓은 상수라고 보시면 됩니다.
(더 자세한 내용은 'Virtual Key'로 검색을 해보세요 )
Perform(WM_NEXTDLGCTL,0,0) 에 관해선
'WM_NEXTDLGCTL'에 대해 검색해 보시는 편이 가장 빠른 방법 일 겁니다.
그럼 즐프하세요.
mmmmm 님이 쓰신 글 :
: 답변감사합니다..
: 그런데 제가 이코딩을 전혀 모르는상태에서 혼자 짐작하는 바로는
: 일단 엔터키라는게 먼지 어떻게 아나 생각해보니 if(Key==VK_RETURN) 이게 엔터키를 누르게 되면이라는 소리인가요?? 제말이 맞다면 VK_RETURN 이게 어떻게 엔터키가 되는거죠?? 아니라면 무엇인지 설명좀요..
: 그리고 Perform(WM_NEXTDLGCTL,0,0) 에서 Perform은 성호님 답변덕분에 센드메세지와 같은 역할을 한다고 이해를 했습니다. 하지만 (WM_NEXTDLGCTL,0,0) 이부분은 잘 이해가 가지 않습니다.
:
:
: if(Key==VK_RETURN) <----
: Perform(WM_NEXTDLGCTL,0,0); <----
: Key = NULL;
:
: 화살표 두부분을 좀더 자세히알려주세요..
: VK_RETURN,
:
: (WM_NEXTDLGCTL,0,0)
: 이게먼지..
:
:
:
:
:
: Fregata 님이 쓰신 글 :
: : 엔터키가 입력될 경우 Perform(WM_NEXTDLGCTL,0,0)에 의해 키보드 포커스가
: : 다음(탭순서상) DialogControl로 넘어가고
: : 'Key = NULL' 에 의해서 엔터키의 원래 기능(CR,LF 입력)은 무효화 됩니다.
: :
: : mmmmm 님이 쓰신 글 :
: : : 빌더 초보입니다. 검색하다 팁정보를 봤는데요..
: : : 엔터를 탭키처럼 사용하는 코딩중에 이것이 도무지 이해가 안가네여..
: : :
: : : void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
: : : {
: : : if(Key==VK_RETURN)
: : : Perform(WM_NEXTDLGCTL,0,0);
: : : Key = NULL;
: : : }
: : : 이것좀 자세히 설명좀해주시면 감사하겠습니다...
: : :
: : : 그리고 번외 질문인데.. 혹시 다들 질문게시판 검색어검색되시나요?? 안되길래..저만안되나해서여..
|