레이블이 GetCurSel()인 게시물을 표시합니다. 모든 게시물 표시
레이블이 GetCurSel()인 게시물을 표시합니다. 모든 게시물 표시

2010년 2월 4일 목요일

MFC practice #7

Interconnection btw event of Listbox and behavior of Edit box.

 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문 구현하여 돌려보자.




2010년 1월 25일 월요일

MFC practice #3

Today's Summary

도구 모음에 도구를 추가 하고 싶을경우
 -resource view에서 Toolbar선택
 -적당한 도구모음의 이미지 drawing
 -그려진 버튼 클릭하여 property window확인
 -이미 메뉴에 구현해 놓은 기능의 ID값을 property window에 등록

Tooltip 혹은 상태표시줄에 안내문구 삽입하기
 -메뉴 혹은 도구모음에 마우스 위치시 안내문구 나타내기
 -property window의 'Prompt'항목에 문구 삽입
 -'테스트를 시작합니다 \n 테스트 시작': '\n'을 기준으로 왼쪽은 상태표시줄, 오른쪽은 툴팁에 표시할 문구임.

LBN_SELCHANGE통지 메시지: 목록상자(ListBox)에서 항목 선택이 변경되었음을 알려줌.
 키보드를 이용했든 마우스를 이용했든 항목 선택이 변경되면 이 메시지가 발생함.


GetCurSel(); //List box내의 항목 선택했을시 항목의 index를 int형으로 반환하는 함수.
see p.440

콤보상자의 속성(type)
 -CBS_DROPDOWNLIST:콤보 상자가 목록 상자(ListBox)를 드롭하는 것은 같지만 에디트 컨트롤은 사라짐.
  콤보상자의 스타일을 CBS_DROPDOWNLIST로 하고 OnInitDialog()함수에서 콤보 상자에
  문자열 항목을 추가(AddString())하면 p.445의 결과 출력