1.LBN_SELCHANGE통지 메세지: Listbox에서 항목 선택이 변경되었음을 알려주는 메세지 (p.439)
- value category의 멤버변수 추가.
- CxDlg class의 속성창의 event버튼 클릭.
- LBN_SELCHANGE통지 메시지의 핸들러 함수(OnLbnSelchangex)등록.
2.GetCurSel() 함수: 현재 선택된 항목의 index 알아냄.
int nIndex;
nIndex=test.GetCurSel();
3.switch/case이용하여 index값에 따라 임의의 string을 edit box에 출력.
- value category로 m_edit1 멤버 변수를 edit box에 추가
- edit box에서는 AddString(), InsertString()이 쓰이지 않음(?), so x.Format()으로 출력.
- 다음과 같이 OnLbnSelchangeList1()의 case문 안에 코딩
m_edit1.Format(_T("index 0"));
UpdateData(FALSE);
Result
- Ok, it works.
- Bug: OGF1,OGF2에 관계 없이 첫번째 명령어는 무조건 'index0'가 발생함.
OGF를 구분하는 조건이 하나가 더 추가 되어야 함. How?
Summary
- LBN_SELCHANGE(OnLbnSelchange()) 통지 메시지:
.목록상자(ListBox)에서 항목 선택이 변경되었음을 알려줌.
.키보드를 이용했든 마우스를 이용했든 항목 선택이 변경되면 이 메시지가 발생함.
- GetCurSel():
.List box내의 항목 선택했을시 항목의 index를 int형으로 반환하는 함수. (see p.440)
- Edit box에서 화면 출력하고자 할때는 'AddStrig()'이나 'InsertString()'이 쓰이지 않고,
'Format()' 함수 사용.
TODO next is
- Debug: 전역 static으로 변수 하나 할당한 후 button click 마지막 란에 OGF구분용 flag 추가
ex) OGF_flag=0
OnLbnSelchange()함수 안에 위의 flag를 이용한 if문 구현하여 돌려보자.
댓글 없음:
댓글 쓰기