1 / 13

List Box

List Box. Control 와 변수의 연결 Value : control 의 값만을 바꿀 수 있음 Control : class 를 이용하여 control 의 여러가지 기능을 제어 예 : Control (ListBox)  변수 (CListBox class) 와 연결. List Box 와 Control 형 멤버변수 연결. CListBox. CListBox 의 자주 사용되는 멤버변수 GetCount() : 컨트롤에 들어있는 문자열의 개수

nam
Download Presentation

List Box

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. List Box • Control 와 변수의 연결 • Value : control의 값만을 바꿀 수 있음 • Control : class를 이용하여 control의 여러가지 기능을 제어 • 예: Control (ListBox)  변수 (CListBox class)와 연결 List Box와 Control 형 멤버변수 연결

  2. CListBox • CListBox의 자주 사용되는 멤버변수 • GetCount() : 컨트롤에 들어있는 문자열의 개수 • GetCurSel : 현재 선택되어 있는 문자열의 인덱스 (0부터 시작) • SetCurSel(N) : N번째 인덱스의 문자열을 선택 (N은 0부터 시작) a = m_ctrleft.GetCount(); b = m_ctrleft.GetCurSel(); m_ctrleft.SetCurSel(3);

  3. CListBox • CListBox의 자주 사용되는 멤버변수 • AddString : 문자열을 제일 뒤에 추가함 • InsertString(Index,문자열) : 지정된 인덱스 에 문자열 추가 • DeleteString(Index) : 지정된 인덱스의 문자열 삭제 • ResetContent : 모든 문자열을 삭제 m_ctrleft.AddString(“kkk”); m_ctrleft.InsertString(3,“bbb”); m_ctfleft.DeleteString(1); ?

  4. 다음 프로그램을 실행시키면 어떻게 되나? m_ctrleft.AddString("1"); m_ctrleft.AddString("2"); m_ctrleft.AddString("3"); m_ctrleft.AddString("4"); m_ctrleft.AddString("5"); m_ctrleft.DeleteString(1); m_ctrleft.DeleteString(1); m_ctrleft.AddString("aaa"); m_ctrleft.SetCurSel(2); a = m_ctrleft.GetCount();

  5. ListBox • Sort Option • Resource View에서 Dialog Box를 선택한 후 오른쪽 click 또는 ALT-Enter Key 입력 • List Box Properties를 지정 가능 • sort option을 해제해야 sorting 되지 않고 표시됨 aaa ccc bbb aaa bbb ccc m_strleft.AddString(“aaa”); m_strleft.AddString(“ccc”); m_strleft.AddString(“bbb”); sort 안 사용 sort 사용

  6. List Box 사용 예제 1 2 3 … 99 100

  7. List Box의 제어 • Up Button을 누르면 select된 것이 한칸 위로 올라감. Down Button을 누르면 select 된 것이 한칸 아래로 감. BOOL CTestDlg::OnInitDialog() { CDialog::OnInitDialog(); m_ctrlist.AddString("aaa"); m_ctrlist.AddString("bbb"); m_ctrlist.AddString("ccc"); m_ctrlist.AddString("rrr"); m_ctrlist.AddString("eee"); m_ctrlist.SetCurSel(2); return TRUE; }

  8. Up & Down Button • Up Button을 누르면 selected 된 것을 한 칸 올림 • Down Button routine을 완성하시오. void CTestDlg::OnUp() { int CurSel; CurSel = m_ctrlist.GetCurSel(); if ( CurSel >= 1 ) m_ctrlist.SetCurSel(CurSel - 1); }

  9. lecture131 program • 두 개의 List Box 사용 • List Box의 Item을 double click하면 왼쪽에서 오른쪽으로, 오른쪽에서 왼쪽으로 이동 • OnInitDialog IDC_LEFTLIST IDC_RIGHTLIST m_ctrleft (control, CListBox) m_strleft(value, Cstring) m_ctrright m_strright BOOL CListDlg::OnInitDialog() { int i; CString strlist[] = {"aaa","bbb","ccc","rrr","eee"}; for ( i = 0 ; i < 5 ; ++i) { m_ctrleft.AddString(strlist[i]); } }

  10. lecture131 program • Double Click Message : BN_DBLCLK void CListDlg::OnDblclkLeftlist() { int nSel = m_ctrleft.GetCurSel(); if (nSel >= 0 ) { UpdateData(TRUE); m_ctrleft.DeleteString(nSel); m_ctrright.AddString(m_strleft); } } void CListDlg::OnDblclkRightlist() { // TODO: Add your control notification handler code here int nSel = m_ctrright.GetCurSel(); if (nSel >= 0 ) { UpdateData(TRUE); m_ctrright.DeleteString(nSel); m_ctrleft.AddString(m_strright); } }

  11. lecture132 program • Up button을 누르면 Select 된 것이 올라가고, Down button을 누르면 Select 된 것이 내려감 • 오른쪽 화살표 : 왼쪽 Item이 오른쪽으로 이동함 • 왼쪽 화살표 : 오른쪽 Edit box의 내용이 왼쪽 List Box로 이동함 m_ctrleft m_strleft m_str

  12. lecture132 program • Up & Down Event (BN_CLICKED) void CListDlg::OnUp() { int CurSel; CurSel = m_ctrleft.GetCurSel(); if ( CurSel >= 1 ) m_ctrleft.SetCurSel(CurSel - 1); } void CListDlg::OnDown() { }

  13. lecture132 program • Right Button Event • Left Button Event ? void CListDlg::OnRight() { int CurSel; UpdateData(TRUE); m_str = m_strleft; CurSel = m_ctrleft.GetCurSel(); m_ctrleft.DeleteString(CurSel); if ( CurSel < m_ctrleft.GetCount() ) m_ctrleft.SetCurSel(CurSel); else m_ctrleft.SetCurSel(CurSel-1); UpdateData(FALSE); }

More Related