티스토리 뷰
728x90
프로그램 설명
아래와 같은 레이아웃을 가지며, 왼쪽 리스트의 내용을 오른쪽으로 이동하고, 그 반대로도 가능하도록 구현하였습니다. 추가는 왼쪽 리스트에만 가능하며, 삭제는 양쪽 모두 가능합니다. 추가시에는 중복된 값이 없어야 합니다.
추가 할 경우 아래와 같이 중복 메시지를 표현합니다.
삭제는 왼쪽 리스트와 오른쪽 리스트 모두에서 가능합니다.
주요 소스코드
프로젝트명은 ex00ex1 입니다.
ex00ex1.h 주요 코드 생성부분
public: CListBox m_listLeft; CListBox m_listRight; afx_msg void OnBnClickedButton1(); afx_msg void OnBnClickedButton2(); CString m_strValue; afx_msg void OnBnClickedButtonAdd(); afx_msg void OnBnClickedButtonSub();
ex00ex1.cpp
void Cex00ex1Dlg::OnBnClickedButton1() //--> 방향 버튼 { // TODO: Add your control notification handler code here CString tmp; //tmp CString 변수 int nIndex = m_listLeft.GetCurSel(); //현재 선택되어있는 Sel을 가지고 옴 if(nIndex != LB_ERR) { m_listLeft.GetText(nIndex, tmp); //선택된 cell에 text를 tmp에 복사 m_listLeft.DeleteString(nIndex); //왼쪽 list의 목록을 삭제 m_listRight.AddString(tmp); //오른쪽 목록에 저장 } } void Cex00ex1Dlg::OnBnClickedButton2() //<-- 방향 버튼 { // TODO: Add your control notification handler code here CString tmp; int nIndex = m_listRight.GetCurSel(); if(nIndex != LB_ERR) { m_listRight.GetText(nIndex, tmp); m_listRight.DeleteString(nIndex); m_listLeft.AddString(tmp); } } void Cex00ex1Dlg::OnBnClickedButtonAdd() //추가 버튼 { // TODO: Add your control notification handler code here UpdateData(); if(m_strValue.GetString() != NULL) { int nIndex = m_listLeft.FindStringExact(-1, m_strValue); //왼쪽 목록에서 검색 int nIndex2 = m_listRight.FindStringExact(-1, m_strValue); //오른쪽 목록에서 검색 CString str, str2; if(nIndex == LB_ERR && nIndex2 == LB_ERR) //왼쪽 목록과 오른쪽 목록 모두가 없을 경우를 확인 { m_listLeft.AddString(m_strValue); //왼쪽 목록에만 추가 } else AfxMessageBox("중복"); } } void Cex00ex1Dlg::OnBnClickedButtonSub() //목록에서 제거 { // TODO: Add your control notification handler code here UpdateData(); if(m_strValue.GetString() != NULL) //NULL이 아닐경우 { int nIndex = m_listLeft.FindStringExact(-1, m_strValue); //왼쪽 목록에서 검색 if(nIndex != LB_ERR) { m_listLeft.DeleteString(nIndex); //왼쪽 목록에 있다면 삭제 } else { //없을 경우 오른쪽 목록에서 삭제 nIndex = m_listRight.FindStringExact(-1, m_strValue); m_listRight.DeleteString(nIndex); } } }
'Programming language' 카테고리의 다른 글
Server와 Client 통신 thread 사용하기 (0) | 2012.06.01 |
---|---|
Python a*x**2 + b*x + c 수식 그래프 그리기 (0) | 2012.05.17 |
MFC Slider Control 구현하기 (2) | 2012.05.09 |
fork() 함수를 이용해 TCP server와 client 코드 (0) | 2012.05.07 |
프로세스 생성 함수 fork() 사용 예제 (6) | 2012.05.03 |
댓글
Blog is powered by
Tistory / Designed by
Tistory