Visual C 2010 MFC Programming 8 ID Caption

  • Slides: 32
Download presentation
윈도우 프로그래밍 Visual C++ 2010 MFC Programming 8장. 표준 컨트롤

윈도우 프로그래밍 Visual C++ 2010 MFC Programming 8장. 표준 컨트롤

< 리소스 만들기 > ID Caption IDC_BUTTON 1 푸시 버튼 IDC_CHECK 1 체크 박스

< 리소스 만들기 > ID Caption IDC_BUTTON 1 푸시 버튼 IDC_CHECK 1 체크 박스 IDC_CHECK 2 3상태 체크 박스 IDC_STATIC 그룹 박스 IDC_RADIO 1 라디오 버튼 1 IDC_RADIO 2 라디오 버튼 2 변경사항 ‘Tri-state’ = TRUE ‘Group’=TRUE

< 컨트롤 변수 추가> class CButton 2 View : public CForm. View { public:

< 컨트롤 변수 추가> class CButton 2 View : public CForm. View { public: CButton m_checkbox; CButton m_3 state; CButton m_radio 1; CButton m_radio 2; }; (초기화) void CButton 2 View: : Do. Data. Exchange(CData. Exchange* p. DX) { CForm. View: : Do. Data. Exchange(p. DX); DDX_Control(p. DX, IDC_CHECK 1, m_checkbox); DDX_Control(p. DX, IDC_CHECK 2, m_3 state); DDX_Control(p. DX, IDC_RADIO 1, m_radio 1); DDX_Control(p. DX, IDC_RADIO 2, m_radio 2); } void CButton 2 View: : On. Initial. Update() { CForm. View: : On. Initial. Update(); Get. Parent. Frame()->Recalc. Layout(); Resize. Parent. To. Fit(); // 버튼 컨트롤을 초기화한다. m_checkbox. Set. Check(1); m_3 state. Set. Check(2); m_radio 2. Set. Check(1); }

< 통지 메시지 핸들러 추가> BEGIN_MESSAGE_MAP(CButton 2 View, CForm. View) ON_BN_CLICKED(IDC_BUTTON 1, &CButton 2

< 통지 메시지 핸들러 추가> BEGIN_MESSAGE_MAP(CButton 2 View, CForm. View) ON_BN_CLICKED(IDC_BUTTON 1, &CButton 2 View: : On. Bn. Clicked. Button 1) END_MESSAGE_MAP() void CButton 2 View: : On. Bn. Clicked. Button 1() { int state_checkbox = m_checkbox. Get. Check(); int state_3 state = m_3 state. Get. Check(); int state_radio 1 = m_radio 1. Get. Check(); int state_radio 2 = m_radio 2. Get. Check(); CString str; str. Format(_T("버튼 상태: %d, %d, %d"), state_checkbox, state_3 state, state_radio 1, state_radio 2); Message. Box(str, _T("Button 2 예제"), MB_ICONINFORMATION); }

< 리소스 만들기 > Edit Control IDC_MYEDIT Static Text IDC_MYSTATIC Sunken=TRUE

< 리소스 만들기 > Edit Control IDC_MYEDIT Static Text IDC_MYSTATIC Sunken=TRUE

< 컨트롤 변수 추가 > IDC_MYEDIT -> m_edit IDC_MYSTATIC -> m_static < 통지 메시지

< 컨트롤 변수 추가 > IDC_MYEDIT -> m_edit IDC_MYSTATIC -> m_static < 통지 메시지 핸들러 추가> EN_CHANGE EN_MAXTEXT

(초기화) void CEdit. Ctrl. View: : On. Initial. Update() { CForm. View: : On.

(초기화) void CEdit. Ctrl. View: : On. Initial. Update() { CForm. View: : On. Initial. Update(); Get. Parent. Frame()->Recalc. Layout(); Resize. Parent. To. Fit(); m_edit. Set. Limit. Text(20); } (핸들러) void CEdit. Ctrl. View: : On. En. Change. Myedit() { CString str; m_edit. Get. Window. Text(str); m_static. Set. Window. Text(str); } void CEdit. Ctrl. View: : On. En. Maxtext. Myedit() { Message. Box(_T("최대 길이 도달!"), _T("오류"), MB_ICONERROR); }

리스트 박스 컨트롤 n 리스트 박스 컨트롤 종류 Single selection Multiple selection

리스트 박스 컨트롤 n 리스트 박스 컨트롤 종류 Single selection Multiple selection

리스트 박스 컨트롤 선택된 항목을 알아내기 /* 단일 선택 리스트 박스 컨트롤인 경우* /

리스트 박스 컨트롤 선택된 항목을 알아내기 /* 단일 선택 리스트 박스 컨트롤인 경우* / int n. Index = m_list. Get. Cur. Sel(); if(n. Index != LB_ERR){ CString str; m_list. Get. Text(n. Index, str); } /* 다중 선택 리스트 박스 컨트롤인 경우* / int n. Index = m_list. Get. Caret. Index(); if(n. Index != LB_ERR){ CString str; m_list. Get. Text(n. Index, str); }

< 리소스 만들기 > Button IDC_LEFT List Box IDC_LIST 1 ‘Sort’ = FALSE Button

< 리소스 만들기 > Button IDC_LEFT List Box IDC_LIST 1 ‘Sort’ = FALSE Button IDC_RIGHT List Box IDC_LIST 2 ‘Sort’ = FALSE

< 컨트롤 변수 추가 > IDC_LEFT => m_left IDC_RIGHT => m_right IDC_LIST 1 =>

< 컨트롤 변수 추가 > IDC_LEFT => m_left IDC_RIGHT => m_right IDC_LIST 1 => m_list 1 IDC_LIST 2 => m_list 2 < 통지 메시지 핸들러 추가 > IDC_LEFT : BN_CLICKED IDC_RIGHT : BN_CLICKED

(초기화) (핸들러) void CList. Box. View: : On. Initial. Update() { CForm. View: :

(초기화) (핸들러) void CList. Box. View: : On. Initial. Update() { CForm. View: : On. Initial. Update(); Get. Parent. Frame()->Recalc. Layout(); Resize. Parent. To. Fit(); void CList. Box. View: : On. Bn. Clicked. Left() { int n. Index = m_list 1. Get. Cur. Sel(); if(n. Index != LB_ERR){ CString str; m_list 1. Get. Text(n. Index, str); m_list 1. Delete. String(n. Index); m_list 1. Set. Cur. Sel(n. Index); m_list 2. Add. String(str); Afx. Get. Main. Wnd()->Set. Window. Text(_T("왼쪽에서 오른쪽으로. . . ")); } } m_list 1. Add. String(_T("사과")); m_list 1. Add. String(_T("딸기")); m_list 1. Add. String(_T("파인애플")); m_list 1. Add. String(_T("복숭아")); } void CList. Box. View: : On. Bn. Clicked. Right() { int n. Index = m_list 2. Get. Cur. Sel(); if(n. Index != LB_ERR){ CString str; m_list 2. Get. Text(n. Index, str); m_list 2. Delete. String(n. Index); m_list 2. Set. Cur. Sel(n. Index); m_list 1. Add. String(str); Afx. Get. Main. Wnd()->Set. Window. Text(_T("오른쪽에서 왼쪽으로. . . ")); } }