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);
}

posted by 부풍