일단 외부에서 입력을 받는 모든 곳에서 사용할 수 있습니다.
또한 입력해 놓은 값을 살펴볼 때, 편집할 때 모두 사용가능하죠..

아이디와 암호를 입력 받는다던가, 주소록을 기록할 때, 어떤 계측 장비의 설정값을 입력할 때
제품 시리얼 키를 입력할 때, 전자 일기장을 쓰고 편집한다던지.. 먼가 문자를 기록하는 모든 곳에
사용된다고 보시면 됩니다. notepad도 CEdit컨트롤을 이용하면 간단하게나마 만들어 볼 수도 있습니다.


위에서 보는것 처럼 에디트의 활용은 엄청나고 거의 모든 윈도우 폼에 사용된다.
저렇게 여러가지 기능을 에디트로 쉽고 편리하게 사용할 수 있다.

그렇다면 폼에는 저렇게 올렸는데, 프로그램에서 저 값들을 어떻게 읽고, 업데이트 하고 하는 것들을
처리할 수 있는가?

MFC에서는 에디트 컨트롤을 프로그램에서 사용하기 위하여 여러가지 방법을 제공해준다.
[팁. MFC에서는 컨트롤을 올리고 어떤 작업을 취하기 않고서도 컨트롤의 모든 기능을 프로그램에서
쉽게 사용할 수 있도록 그 기능을 제공해준다. 특별하게 책에 나온것 처럼 변수나 컨트롤에 연결하지
않아도 CTempWnd라는 임시 윈도우로 연결되어 CWnd의 모든 기능을 가져다 쓸수도 있다
.]

1. 변수와 연결하여 UpdateData(TRUE | FALSE)를 이용하여 값을 읽고 쓴다.
2. CEdit컨트롤에 연결하여 컨트롤의 내부 기능을 이용하여 값을 읽고 쓴다.
3. 그대로 놓고 위의 팁처럼 CWnd의 기능을 이용하여 값을 읽고 쓴다.

우선 저런 기능을 하기 위하여 가장 쉽게 클래스 위저드를 이용하여 처리해 봅시다.
리소스 폼에서 Ctrl+W를 누르거나 오른쪽 마우스의 메뉴를 이용하여 띄운다.


Object ID: 현재 선택된 다이알로그 폼의 클래스와, 거기에 올려져 있는 컨트롤의 ID목록이 함께 나온다.
Messages : 오브젝트 ID를 선택하면 해당 컨트롤에서 사용할 수 있는 필터링된 이벤트 목록이 나온다.
Member functions : 현재 폼에서 이미 사용되고 있는 멤버 가상함수와 이벤트 핸들러 목록이 나온다.
Add Class : 현재 프로젝트에 새로운 클래스를 추가할 수있는 워저드를 제공한다.
Add Function : 선택된 이벤트의 핸들러를 추가하거나 제공되는 가상함수를 오버라이딩한다.
Delete Function : 맴버 펑션에 선택된 아이템을 제거한다. (구현부는 직접 지워줘야한다.)
Edit Code : 선택된 멤버 펑션함수를 에디팅 상태로 편집창에 보여준다.

대충 설명을 달았는데, 이건 현재 세션의 관심사가 아니므로 그냥 그런가 보다 해도 지장없다.
[사실 저런 기능은 대부분 책을 보고 참조하는게 더 좋고 빠르다. 책이 좋지.. ㅎ~]

위 화면의 두번째 탭 Member Variables 선택해보자.
그리고, IDC_EDIT1을 선택한 후 Add Variable이라는 버튼을 클릭한 화면이다.


Member Variable Name: 변수의 이름
Category : 선택된 컨트롤ID를 변수에 연결할 건지, 컨트롤에 연결할 것인지를 결정한다.
Variable Type : 변수로 선택하면 선택 가능한 변수 타입이 나오고, 컨트롤을 연결하면 연결 가능한 컨트롤 클래스가 나열된다.

카테고리에서 변수의 값과 컨트롤로 연결하는 2가지가 나오는데.. 이건 나중에 다루자.
[보통 폼에서 값을 단순하게 받아들이는 형태일 경우는 변수 값으로 대부분 사용하고
에디트 컨트롤의 외양에 먼가 변화를 줄 때는 컨트롤로 많이 연결한다.
]

멤버 변수 이름에 m_first라고 입력한 후 OK를 눌러보자.
그러면 다음과 같은 것이 새로 생겨있을 것이다.


위의 빨간 똥그라미 부분은 컨트롤로 연결할 때는 보이지 않으며 변수로 연결할 경우 특수한 값에 따라 보여지거나 그 형태를 달리한다.
현재는 변수가 CString 형태로 연결되었으므로 입력되는 최대 제한 길이를 설정할 수 있도록 도와주고 있다.
그리고 다시 OK를 눌러 편집창으로 돌아온다.

그러고 나면 다이알로그의 헤더파일과 소스 파일에 m_first라는 글자가 3곳 추가되어 있을 것이다.
1. 헤더에서는 변수의 선언부에.
2. 소스 생성자에서 초기화 하는 부분
3. 소스 DoDataExchange 메서드에서 컨트롤 아이디와 변수를 자동으로 연결 시켜주는 부분.

이렇게 하면 컨트롤에 어떤 글자를 입력하고 그것을 받아서 응용프로그램에서 관리할 수 있는 준비는
모두 끝난것이다.

화면에 입력한 값을 읽어 올 때는
UpdateData(TRUE);

변수에 내가 값을 집어 넣고, 그게 화면에 반영되도록 할 경우는
UpdateData(FALSE);

이 간단한 로직으로 CString 타입의 m_first라는 변수를 마음대로 사용할 수 있다.

다음에 시간나면 첫번째 그림에서 전압에 글씨가빨간색으로

거리비의 배경이 녹색으로 나온것에 대하여 설명할 것이다. 모든지 뽀대가 나야지 ㅎㅎ~

+ Recent posts