윈도우즈 edit 콘트롤의 기능을 제공한다.

class CEdit: public CWnd

요약
edit 컨트롤은 사용자가 텍스를 입력할 수 있는 네모난 자식 윈도우이다.
대화상자 템플릿 혹은 직접 코드를 작성해서 edit 컨트롤을 생성할 수 있다.
두가지 경우 모두, CEdit 객체를 구성하기 위해 CEdit 생성자를 호출하고, 윈도우즈 edit 컨트롤을 생성하고 CEdit객체에 연결하기 위해서 Create 멤버 함수를 호출한다. CEdit로 부터 상속받은 클래스에서 생성자는 ine-steo process일 수 있다.
상속받은 클래스에 생성자를 작성하고 생성자내의 Create를 호출한다.
CEdit는 CWnd로부터 중요한 기능을 상속받는다. CEdit 객체에 텍스트를 저장하고 가져오기 위해서, edit컨트롤의 전체 데이터를 설정하고 가져오는 CWnd의 SetWindowTest와GetWindowText 멤버 함수를 사용한다, 여러개의 콘트롤일때도 가능하다. 여러개의 콘트롤에 있는 텍스트 라인은 '\r\n' 문자열로서 구분된다. 또한, edit 콘트롤이 여러개일 때, CEdit 멤버 함수인 GetLine, SetSel, GetSel, ReplaceSel을 사용해서 콘트롤의 텍스트의 일부를 저장하고 가져올 수 있다.
edit 콘트롤에서 부모(보통은 CDialog로부터 상속받은)로 보내지는 윈도우즈 통지 메시지를 처리하길 원한다면, 각 메시지를 위한 부모 클래스에 메시지맵 엔트리와 메시지 핸들러 멤버함수를 추가 하면된다.

각 메시지 맵 엔트르는 다음의 형태를 가진다:
ON_Notification(id, memberFxn)
id는 통지 메시지를 보내는 edit 콘트롤의 자식 윈도우 ID이고, memberFxn는 통지 메시지를 처리하기 위해 여러분이 작성
부모 멤버 함수의 이름이다.

부모 함수 원형은 다음과 같다:
afx_msg void memberFxn();
다음은 나중에 추가될 가능성이 있는 메시지맵 엔트리와 부모로 보내질 수 있는 경우의 설명을 나타낸다:
- ON_EN_CHANGE 사용자가 에디트 콘트롤의 텍스트를 수정했을 경우. EN_UPDATE 통지 메시지
  와 다른 점은 Windows 업데이트가 표시된 후에 보내진다는 것이다.
- ON_EN_ERRSPACE 에드트 콘트롤이 특정한 request를 처리하기 위한 충분한 메모리를 할당할
  수 없다.
- ON_EN_HSCROLL 사용자가 에디트 콘트롤의 수평 스크롤 바를 클릭한다. 화면이 업데이트하기
  전에 부모 윈도우가 통지 된다.
- ON_EN_KILLFOCUS 에디트 콘트롤이 입력 포커스를 잃었다.
- ON_EN_MAXTEXT 현재 입력된 문자열이 에디트 콘트롤에 허용된 문자열 갯수를 초과해서 잘렸
  다. 에디트 콘트롤이 ES_AUTOHSCROLL 스타일을 가지고 있지 않고 문자열 갯수가 에디트 콘트
  롤의 폭을 초과했으면 보내진다. 에디트 콘트롤이 ES_AUTOVSCROLL 스타일을 가지고 있지 않고
  텍스트의 라인수가 에디트 콘트롤의 높이를 초과하면 보내진다.
- ON_EN_SETFOCUS 에디트 콘트롤이 입력 포커스를 받을 때 보내진다.
- ON_EN_UPDATE 에디트 콘트롤이 수정된 문자열로 표시될 때. 화면에 텍스트가 표시되고 있는데
  콘트롤이 텍스트로 설정된 후 보내진다 따라서 윈도우 사이즈는 필요에 따라서 변할 수 있다.
- ON_EN_VSCROLL 사용자가 에디트 콘트롤의 수직 스크롤 바를 클릭한다. 부모 윈도으는 화면이
  업데이트 되기 전에 통지 한다.
  다이얼로그 박스 내에 CEdit 객체를 생성했다면, 사용자가 다이얼로그 박스를 닫으면 CEdit 객체는 자동으로 제거된다.
  다이얼로그 에디터를 사용해서 대화상자 리소스로부터 CEdit 객체를 생성했다면, 사용자가 대화상자를 닫으면 CEdit 객체
  자동으로 제거된다.
윈도우 내에 CEdit 객체를 생성했다면, 그것을 제거할 필요가 있을 것이다. CEdit 객체를 스택에 생성했다면, 자동으로 제거
것이다. new 연산자를 사용해서 힙 영역에 CEdit 객체를 생성했다면, 사용자가 윈도우 에디트 콘트롤을 종료할 때 delete 함
를 호출해서 객체를 제거해야만 한다. CEdit 객체에 메모리를 할당했다면 CEdit 소멸자를 오버라이드해서 메모리를 해제 해야한다.
ES_READONLY와 같은 에디트 콘트롤의 특정한 스타일을 수정하기 위해서는 ModifyStyle 사용해서 콘트롤에 특정한 메시를
보내야만 한다. Platform SDK의 Edit Control Styles를 보라.

CEdit에 대한 자세한 정보는 다음을 보라:
- Controls
- Knowledge Base article Q259949 : INFO: SetCaretPos() Is Not Appropriate with CEdit or CRic
  hEditCtrl Controls

요구 사항

Header: afxwin.h

 

Posted by RoaZium