// DLG_SYSSetup.cpp : implementation file // #include "stdafx.h" #include "corpsms.h" #include "DLG_SYSSetup.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_SYSSetup dialog #include "DLG_GroupSelect.h" DLG_SYSSetup::DLG_SYSSetup(CWnd* pParent /*=NULL*/) : CDialog(DLG_SYSSetup::IDD, pParent) { //{{AFX_DATA_INIT(DLG_SYSSetup) m_bAutoRecord = FALSE; m_strGroup = _T(""); m_strAutoRecv = _T(""); m_bAutoExRe = FALSE; //}}AFX_DATA_INIT memset(&m_Setup,0,sizeof(m_Setup)); } void DLG_SYSSetup::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_SYSSetup) DDX_Control(pDX, IDC_SYSSETUP_AUTOREAD, m_B_AutoRead); DDX_Control(pDX, IDC_SYSSETUP_BAUDRATE, m_L_Baudrate); DDX_Control(pDX, IDC_SYSSETUP_MOBILETYPE, m_L_Type); DDX_Control(pDX, IDC_SYSSETUP_PORT, m_L_Com); DDX_Control(pDX, IDC_SYSSETUP_USEMOBILE, m_B_UseMobile); DDX_Control(pDX, IDC_SYSSETUP_AUTOREMSG, m_E_AutoReMsg); DDX_Control(pDX, IDC_SYSSETUP_AUTORE, m_B_AutoRe); DDX_Control(pDX, IDC_SYSSETUP_AUTODELETE, m_B_AutoDelete); DDX_Control(pDX, IDC_SYSSETUP_AUTOCLEARE, m_E_AutoClear); DDX_Check(pDX, IDC_SYSSETUP_AUTORECORD, m_bAutoRecord); DDX_Text(pDX, IDC_SYSSETUP_AUTORECORDGROUP, m_strGroup); DDX_Text(pDX, IDC_SYSSETUP_AUTORERECV, m_strAutoRecv); DDV_MaxChars(pDX, m_strAutoRecv, 22); DDX_Check(pDX, IDC_SYSSETUP_AUTOEXRE, m_bAutoExRe); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(DLG_SYSSetup, CDialog) //{{AFX_MSG_MAP(DLG_SYSSetup) ON_BN_CLICKED(IDC_SYSSETUP_USEMOBILE, OnSyssetupUsemobile) ON_BN_CLICKED(IDC_SYSSETUP_AUTODELETE, OnSyssetupAutodelete) ON_BN_CLICKED(IDC_SYSSETUP_AUTORE, OnSyssetupAutore) ON_CBN_EDITCHANGE(IDC_SYSSETUP_PORT, OnEditchangeSyssetupPort) ON_CBN_SELCHANGE(IDC_SYSSETUP_MOBILETYPE, OnSelchangeSyssetupMobiletype) ON_BN_CLICKED(IDC_SYSSETUP_AUTORECORDSELGROUP, OnSyssetupAutorecordselgroup) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_SYSSetup message handlers void DLG_SYSSetup::SetParam(SM_Setup setup) { m_Setup = setup; } SM_Setup DLG_SYSSetup::GetParam() { return m_Setup; } BOOL DLG_SYSSetup::OnInitDialog() { CDialog::OnInitDialog(); TCHAR Buf[32]={0}; m_L_Type.SetCurSel( m_Setup.lMobileType ); if ( m_Setup.lBaudrate <= 0 ) { m_L_Baudrate.SelectString( -1 , _T("19200") ); //默认速率 } else { m_L_Baudrate.SelectString( -1 , _ltot( m_Setup.lBaudrate , Buf , 10 ) ); } m_B_UseMobile.SetCheck( m_Setup.bUseMobile ); m_L_Com.LimitText(3); m_L_Com.InsertString( 0 , _T("红外线") ); for ( int i=0 ; i< 64 ; i++ ) { _stprintf( Buf , _T("COM%d") , i+1 ); m_L_Com.InsertString( i+1 , Buf ); } ReSetIrDaSel(); m_L_Com.SetCurSel(m_Setup.lPort); m_B_AutoRead.SetCheck( m_Setup.bAutoRead ); m_B_AutoDelete.SetCheck( m_Setup.bAutoDelete ); m_E_AutoClear.SetWindowText(_ltot(m_Setup.lAutoClearCount , Buf , 10 )); m_E_AutoClear.LimitText( 2 ); m_B_AutoRe.SetCheck( m_Setup.bAutoRe ); m_E_AutoReMsg.SetWindowText( m_Setup.szAutoRe ); m_E_AutoReMsg.LimitText( sizeof(m_Setup.szAutoRe)-8 ); m_strAutoRecv = m_Setup.szAutoRecv; m_bAutoExRe = m_Setup.bAutoExRe; m_bAutoRecord = m_Setup.bAutoRecord; m_strGroup = m_Setup.szGroup; UpdateData(false); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void DLG_SYSSetup::OnSyssetupUsemobile() { } void DLG_SYSSetup::OnSyssetupAutodelete() { } void DLG_SYSSetup::OnSyssetupAutore() { } void DLG_SYSSetup::OnEditchangeSyssetupPort() { } void DLG_SYSSetup::ReSetIrDaSel() { long lType = m_L_Type.GetCurSel(); if ( lType == 1 ) //手机类型为Nokia,所以可以选择红外线。 { m_L_Com.DeleteString(0); m_L_Com.InsertString( 0 , _T("红外线") ); } else { m_L_Com.DeleteString(0); m_L_Com.InsertString( 0 , _T(" ") ); } } void DLG_SYSSetup::OnOK() { if ( !UpdateData(true) ) return ; TCHAR Buf[32]; m_Setup.bUseMobile = m_B_UseMobile.GetCheck(); m_Setup.lPort = m_L_Com.GetCurSel(); m_Setup.lMobileType = m_L_Type.GetCurSel(); m_L_Baudrate.GetWindowText(Buf , sizeof(Buf) ); m_Setup.lBaudrate = _ttol( Buf ); m_Setup.bAutoRead = m_B_AutoRead.GetCheck(); m_Setup.bAutoDelete = m_B_AutoDelete.GetCheck(); m_E_AutoClear.GetWindowText(Buf , sizeof(Buf) ); m_Setup.lAutoClearCount = _ttol(Buf); m_Setup.bAutoRe = m_B_AutoRe.GetCheck(); m_E_AutoReMsg.GetWindowText(m_Setup.szAutoRe , sizeof(m_Setup.szAutoRe) ); _tcscpy(m_Setup.szAutoRecv , m_strAutoRecv ); m_Setup.bAutoExRe = m_bAutoExRe; m_Setup.bAutoRecord = m_bAutoRecord; _tcscpy(m_Setup.szGroup,m_strGroup); if ( m_Setup.lMobileType == 0 ) //标准GSM手机 { if ( m_Setup.lPort <= 0 ) { MessageBox( _T("串口选择错误,请重新选择!") , _T("错误") , MB_OK|MB_ICONWARNING ); return ; } } if ( m_Setup.bAutoRe && _tcslen(m_Setup.szAutoRe)<=0 ) { MessageBox( _T("你选择了自动回复信息,但没有设置回复内容,请选择!") , _T("错误") , MB_OK|MB_ICONWARNING ); return ; } if ( m_Setup.bAutoRecord && _tcslen(m_Setup.szGroup)<=0 ) { MessageBox( _T("你选择了自动记录来信号码,但没有设置记录的用户组,请选择!") , _T("错误") , MB_OK|MB_ICONWARNING ); return ; } CDialog::OnOK(); } void DLG_SYSSetup::OnSelchangeSyssetupMobiletype() { long lType = m_L_Type.GetCurSel(); if ( lType == 1 ) //手机类型为Nokia,所以可以选择红外线。 { m_L_Baudrate.SelectString( -1 , _T("115200") ); } else { m_L_Baudrate.SelectString( -1 , _T("19200") ); } ReSetIrDaSel(); } void DLG_SYSSetup::OnSyssetupAutorecordselgroup() { CMainFrame * pMainFrame = (CMainFrame *)this->GetParent(); DLG_GroupSelect dlg(this); dlg.SetParam( pMainFrame ); if ( dlg.DoModal() == IDOK ) { UpdateData(true); dlg.GetParam(m_strGroup); UpdateData(false); } }