Edit창 업데이트

2007. 7. 2. 13:13HW & SW

방법 1

void CDataDlg::OnButton1()

{          //가장 손쉬운 방법

     CString str;

     GetDlgItemText(IDC_EDIT1, str);  //IDC_EDIT1에 입력한 문자열을 얻음

     SetDlgItemText(IDC_STATIC1, str); //IDC_STATIC1에 문자열 출력

}


==> 초보자가 가장 쉽게 사용하는 방법



방법 2

void CDataDlg::OnButton2()

{       //컨트롤을 이용하는 방법

     CString str;

     m_ctlEdit2.GetWindowText(str);   //CEdit형 멤버변수

     m_ctlStatic2.SetWindowText(str);   //CStatic형 멤버변수

}


==> 클래스위저드의 두번째 탭에서 <Category>를 Control로 설정하여 추가한 CEdit 타입의 m_ctlEdit2와 CStatic 타입의 m_ctlStatic2를 사용하는 방법


방법 3

void CDataDlg::OnButton3()

{     //데이터값을 이용하는 방법

     UpdateData(TRUE);

     m_strStatic3 = m_strEdit3; //CString 형 멤버변수

     UpdateData(FALSE);

}


==> 클래스위저드의 두번째 탭에서 <Category>를 Value로 설정하여 추가한 CString 타입의 m_strEdit3와 m_strStatic3를 사용하는 방법이다. 이렇게 실제 데이터 값을 이용하는 경우 UpdateData()를 적절히 사용해야함.


방법 4

void CDataDlg::OnButton4()

{       //객체 포인터를 이용하는 방법

     CString str;

     CEdit* pE4=(CEdit*)GetDlgItem(IDC_EDIT4);

     pE4->GetWindowText(str);


     CStatic* pS4=(CStatic*)GetDlgItem(IDC_STATIC4);

     pS4->setWindowText(str);

}


==> GetDlgItem()함수는 컨트롤 ID에 해당하는 객체에 대한 포인트를 리턴한다. 이 함수는 CWnd*형이기 때문에

컨트롤 유형에 따라 적절히 변환한다.



방법 1과 4는 DDX/DDV 기능을 사용하지 않음.

방법 2와 3는 DDX/DDV 기능 사용(메모리 소모가 많지만 사용하기 간편).

 

'HW & SW' 카테고리의 다른 글

ATMEL ATTINY2313 Datasheet  (0) 2007.07.19
Visual C 프로젝트 이름 변경 프로그램  (0) 2007.07.02
인텔리센스가 잘 안먹힐 경우  (0) 2007.07.02
C코드 형식 지정자 모음  (0) 2007.07.02
ATMEL AT90CAN128 Datasheet  (0) 2007.02.08