2009. 8. 24. 16:30
Programming/MFC
멤버 변수 생성
- DDX로 m_listCombo 변수 생성
CComboBox m_listCombo;
CEx11View::OnInitialUpdate
두 가지 방법으로 control을 접근할 수 있다.
void CEx11View::OnInitialUpdate() { CFormView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); CString data; for(int i = 0; i < 8; i++) { data.Format("Combo data %d", i); m_listCombo.AddString(data); } CListBox *plistDlg = (CListBox*)GetDlgItem(IDC_LIST1); for(i = 0; i < 8; i++) { data.Format("List data %d", i); plistDlg->AddString(data); } UpdateData(FALSE); }
메시지 처리
LBN_SELCHANGE
void CEx11View::OnLbnSelchangeList1() { CString str; CListBox *pList; pList = (CListBox*)GetDlgItem(IDC_LIST1); pList->GetText(pList->GetCurSel(), str); AfxGetMainWnd()->SetWindowText(str); }
CBN_SELCHANGE
void CEx11View::OnCbnSelchangeCombo1() { CString str; CComboBox *pCombo; pCombo = (CComboBox*)GetDlgItem(IDC_COMBO1); pCombo->GetLBText(pCombo->GetCurSel(), str); AfxGetMainWnd()->SetWindowText(str); }
CBN_EDITCHANGE
직접 타이핑하면 타이핑한 결과가 화면에 나타난다.
void CEx11View::OnCbnEditchangeCombo1() { CString str; CComboBox *pCombo; pCombo = (CComboBox*)GetDlgItem(IDC_COMBO1); pCombo->GetWindowText(str); AfxGetMainWnd()->SetWindowText(str); }