2010년 2월 4일 목요일

MFC practice #5

How to connect a button with its relative dialog?

ref-p.560

1.새로 추가하려는 Dialog(버튼과 연동된 dialog, child dialog)에 class추가(우클릭 'Add Class')
  Class name에 'CSetPortDlg"입력
2.새로 추가한 class의(CSetPortDlg) header를 (Add class시에 자동으로 이름 생성됨)
  구현파일("HCIxxx.cpp)에 include 시킴(#include "SetPortDlg.h")
3.mother dialog(button이 위치한 dialog)에 button control resource를 추가하고
  handler 함수 등록(우클릭"Add event handler"->function name은 자동 생성됨)
4.coding in the "xxx_Dlg.cpp" file.
  ex)
  void CHCI_ex_01_28_1Dlg::OnBnClickedButtonSetport()
  {
CSetPortDlg Dlg;
INT_PTR nResult=Dlg.DoModal(); //이때 new dialog open. DoModal() function.
if(nResult==IDOK)
AfxMessageBox(_T("OK"));
  }


Result
 - I can see the result which i wanted.
 - SetPort Dialog의 radio button 5개가 모두 1그룹처럼 동작하고 있어
   총 5개의 button중 하나만 선택 가능하게 설정되어 있음 => 2그룹으로 나누어야 함.
 
   각 그룹의 첫번째 radio button의 'Group style'(its property)을 'true'로 변경 (p.420)
   =>solved!!!

TODO next is
 1.In the main dialog
  1)CMD1 button click시에 그 아래쪽의 List box에 해당 그룹의 명령어가 나열되게 한다.
  2)CMD2 button click시에도 위와 동일한 형태로 동작되게 한다.
  3)List box에 나열된 명령어중 하나를 click시에 해당 bit stream을 packetize한 후
    이를 RS-232 module로 전송하고, 이 내용을 오른쪽 window(edit box or..)에 도시
  4)3번의 반대 과정, 즉 de-packetize과정 역시 필요
 2.In the SetPort Dialog
  -port, speed setting 값이 'OK' 버튼 클릭시에 해당 설정값을 RS-232 module에 저장토록 한다
   UpdateData()함수 이용??

댓글 없음:

댓글 쓰기