// MyComSetDlg.cpp : implementation file // #include "stdafx.h" #include "comElves.h" #include "MyComSetDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CMyComSetDlg dialog CMyComSetDlg::CMyComSetDlg(CWnd* pParent /*=NULL*/) : CDialog(CMyComSetDlg::IDD, pParent) { //{{AFX_DATA_INIT(CMyComSetDlg) m_autoTime = 1000; m_BSHex = -1; m_BRHex = -1; //}}AFX_DATA_INIT m_bAuto = false; } void CMyComSetDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CMyComSetDlg) DDX_Control(pDX, IDC_BAUTO, m_ctrlBAuto); DDX_Control(pDX, IDC_CSTOP, m_combStop); DDX_Control(pDX, IDC_CDATA, m_combData); DDX_Control(pDX, IDC_CCOM, m_combCom); DDX_Control(pDX, IDC_CCHECK, m_combCheck); DDX_Control(pDX, IDC_CBUD, m_combBaud); DDX_Text(pDX, IDC_TIME, m_autoTime); DDX_Radio(pDX, IDC_RSSTRING, m_BSHex); DDX_Radio(pDX, IDC_RRSTRING, m_BRHex); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CMyComSetDlg, CDialog) //{{AFX_MSG_MAP(CMyComSetDlg) ON_CBN_SELCHANGE(IDC_CBUD, OnSelchangeCbud) ON_CBN_SELCHANGE(IDC_CCOM, OnSelchangeCcom) ON_CBN_SELCHANGE(IDC_CCHECK, OnSelchangeCcheck) ON_CBN_SELCHANGE(IDC_CDATA, OnSelchangeCdata) ON_CBN_SELCHANGE(IDC_CSTOP, OnSelchangeCstop) ON_BN_CLICKED(IDC_BAUTO, OnbAuto) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMyComSetDlg message handlers BOOL CMyComSetDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here InitComb(); InitAuto(); InitSendType(); InitRecvType(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CMyComSetDlg::InitComb() { InitCombCom(); InitCombBaud(); InitCombData(); InitCombStop(); InitCombCheck(); } void CMyComSetDlg::InitCombCom() { int i = 0; CString str; for(i = 0 ; i < 5; i++) { str.Format("COM%d",i + 1); m_combCom.InsertString(i,str); } m_combCom.SetCurSel(m_nCom - 1); } void CMyComSetDlg::InitCombBaud() { int i = 0, temp = 300; CString str; m_combBaud.InsertString(0,"110"); for(i = 1; i < 9; i++) { str.Format("%d",temp); m_combBaud.InsertString(i,str); temp *= 2; } m_combBaud.InsertString(9,"43000"); m_combBaud.InsertString(10,"56000"); m_combBaud.InsertString(11,"57600"); m_combBaud.InsertString(12,"115200"); m_combBaud.InsertString(13,"128000"); m_combBaud.InsertString(14,"256000"); switch(m_nBaud) { case 110: m_combBaud.SetCurSel(0); break; case 300: m_combBaud.SetCurSel(1); break; case 600: m_combBaud.SetCurSel(2); break; case 1200: m_combBaud.SetCurSel(3); break; case 2400: m_combBaud.SetCurSel(4); break; case 4800: m_combBaud.SetCurSel(5); break; case 9600: m_combBaud.SetCurSel(6); break; case 19200: m_combBaud.SetCurSel(7); break; case 38400: m_combBaud.SetCurSel(8); break; case 43000: m_combBaud.SetCurSel(9); break; case 56000: m_combBaud.SetCurSel(10); break; case 57600: m_combBaud.SetCurSel(11); break; case 115200: m_combBaud.SetCurSel(12); break; case 128000: m_combBaud.SetCurSel(13); break; case 256000: m_combBaud.SetCurSel(14); break; } } void CMyComSetDlg::InitCombData() { m_combData.InsertString(0,"8"); m_combData.InsertString(1,"7"); m_combData.InsertString(2,"6"); m_combData.SetCurSel((m_nDatabits * -1) + 8); } void CMyComSetDlg::InitCombCheck() { m_combCheck.InsertString(0,"NONE"); m_combCheck.InsertString(1,"ODD"); m_combCheck.InsertString(2,"EVEN"); switch(m_cParity) { case 'N': m_combCheck.SetCurSel(0); break; case 'O': m_combCheck.SetCurSel(1); break; case 'E': m_combCheck.SetCurSel(2); break; } } void CMyComSetDlg::InitCombStop() { m_combStop.InsertString(0,"1"); m_combStop.InsertString(1,"2"); m_combStop.SetCurSel(m_nStopbits - 1); } void CMyComSetDlg::InitAuto() { if(m_bAuto) { m_ctrlBAuto.SetCheck(1); } else { GetDlgItem(IDC_TIME)->EnableWindow(false); } } void CMyComSetDlg::OnbAuto() { // TODO: Add your control notification handler code here if(m_bAuto) { m_bAuto = false; GetDlgItem(IDC_TIME)->EnableWindow(false); } else { m_bAuto = true; GetDlgItem(IDC_TIME)->EnableWindow(true); } } void CMyComSetDlg::InitSendType() { UpdateData(false); } void CMyComSetDlg::InitRecvType() { UpdateData(false); } void CMyComSetDlg::OnSelchangeCbud() { // TODO: Add your control notification handler code here int n = m_combBaud.GetCurSel(); switch(n) { case 0: m_nBaud = 110; break; case 1: m_nBaud = 300; break; case 2: m_nBaud = 600; break; case 3: m_nBaud = 1200; break; case 4: m_nBaud = 2400; break; case 5: m_nBaud = 4800; break; case 6: m_nBaud = 9600; break; case 7: m_nBaud = 19200; break; case 8: m_nBaud = 38400; break; case 9: m_nBaud = 43000; break; case 10: m_nBaud = 56000; break; case 11: m_nBaud = 57600; break; case 12: m_nBaud = 115200; break; case 13: m_nBaud = 128000; break; case 14: m_nBaud = 256000; break; } } void CMyComSetDlg::OnSelchangeCcom() { // TODO: Add your control notification handler code here m_nCom = m_combCom.GetCurSel() + 1; } void CMyComSetDlg::OnSelchangeCcheck() { // TODO: Add your control notification handler code here int n = m_combCheck.GetCurSel(); switch( n ) { case 0: m_cParity = 'N'; break; case 1: m_cParity = 'O'; break; case 2: m_cParity = 'E'; break; } } void CMyComSetDlg::OnSelchangeCdata() { // TODO: Add your control notification handler code here m_nDatabits =( m_combData.GetCurSel() * (-1) ) + 8; } void CMyComSetDlg::OnSelchangeCstop() { // TODO: Add your control notification handler code here m_nStopbits = m_combStop.GetCurSel() + 1; }