?? config.cpp
字號:
// Config.cpp : implementation file
//
#include "stdafx.h"
#include "ComTest.h"
#include "Config.h"
//#include "SerialPort.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CConfig dialog
//extern CSerialPort* m_Ports[4];
extern _PortInfo PortInfo[4];
CConfig::CConfig(CWnd* pParent,int id): CDialog(CConfig::IDD, pParent)
{
//{{AFX_DATA_INIT(CConfig)
//}}AFX_DATA_INIT
uid=id;
m_ReciveFile=PortInfo[uid].stReciveFileName;
m_ReadFile=PortInfo[uid].stSendFileName ;
m_time = PortInfo[uid].nUseTime;
}
void CConfig::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CConfig)
DDX_Text(pDX, IDC_WRITEFILENAME, m_ReciveFile);
DDX_Text(pDX, IDC_READFILENAME, m_ReadFile);
DDX_Text(pDX, IDC_EDIT_TIME, m_time);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CConfig, CDialog)
//{{AFX_MSG_MAP(CConfig)
ON_BN_CLICKED(IDC_WRITEFILE, OnWritefile)
ON_BN_CLICKED(IDC_READFILE, OnReadfile)
ON_BN_CLICKED(IDC_GETREADFILE, OnGetreadfile)
ON_BN_CLICKED(IDC_INPUTTYPE1, OnInputtype1)
ON_BN_CLICKED(IDC_INPUTTYPE2, OnInputtype2)
ON_BN_CLICKED(IDC_OUTPUTTYPE1, OnOutputtype1)
ON_BN_CLICKED(IDC_OUTPUTTYPE2, OnOutputtype2)
ON_BN_CLICKED(IDC_SENDLINE, OnSendline)
ON_EN_KILLFOCUS(IDC_WRITEFILENAME, OnKillfocusWritefilename)
ON_BN_CLICKED(IDC_GETWRITEFILE, OnGetwritefile)
ON_BN_CLICKED(IDC_INCLUDN, OnIncludn)
ON_BN_CLICKED(IDC_CKC_TIME, OnCkcTime)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CConfig message handlers
BOOL CConfig::OnInitDialog()
{
CDialog::OnInitDialog();
SetDlgItemInt(IDC_SENDBUFFERCOMBO, PortInfo[uid].nBufferSize);
DWORD dwCommEvents = PortInfo[uid].dwCommEvents;
((CButton*)GetDlgItem(IDC_CHECK1))->SetCheck((dwCommEvents & EV_BREAK) > 0 ? TRUE : FALSE);
((CButton*)GetDlgItem(IDC_CHECK2))->SetCheck((dwCommEvents & EV_CTS) > 0 ? TRUE : FALSE);
((CButton*)GetDlgItem(IDC_CHECK3))->SetCheck((dwCommEvents & EV_DSR) > 0 ? TRUE : FALSE);
((CButton*)GetDlgItem(IDC_CHECK4))->SetCheck((dwCommEvents & EV_ERR) > 0 ? TRUE : FALSE);
((CButton*)GetDlgItem(IDC_CHECK5))->SetCheck((dwCommEvents & EV_RING) > 0 ? TRUE : FALSE);
((CButton*)GetDlgItem(IDC_CHECK6))->SetCheck((dwCommEvents & EV_RLSD) > 0 ? TRUE : FALSE);
((CButton*)GetDlgItem(IDC_CHECK7))->SetCheck((dwCommEvents & EV_RXCHAR) > 0 ? TRUE : FALSE);
((CButton*)GetDlgItem(IDC_CHECK8))->SetCheck((dwCommEvents & EV_RXFLAG) > 0 ? TRUE : FALSE);
((CButton*)GetDlgItem(IDC_CHECK9))->SetCheck((dwCommEvents & EV_TXEMPTY) > 0 ? TRUE : FALSE);
char strTemp[128];
((CComboBox*)GetDlgItem(IDC_BAUDRATECOMBO))->SelectString(0, itoa(PortInfo[uid].Baud,strTemp,10));
int t=0;
switch(PortInfo[uid].Parity){
case 'N':t=0;break;
case 'O':t=1;break;
case 'E':t=2;break;
case 'M':t=3;break;
case 'S':t=4;break;
}
((CComboBox*)GetDlgItem(IDC_PARITYCOMBO))->SetCurSel(t);
//((CComboBox*)GetDlgItem(IDC_STOPBITSCOMBO))->SetCurSel(1);
GetDlgItem(IDC_STOPBITSCOMBO)->SetWindowText(PortInfo[uid].StopsBits);
((CComboBox*)GetDlgItem(IDC_DATABITSCOMBO))->SelectString(0, itoa(PortInfo[uid].DataBits,strTemp,10));
iReciveType=PortInfo[uid].iReciveType;
iSendType=PortInfo[uid].iSendType;
((CButton*)GetDlgItem(IDC_INPUTTYPE1+iReciveType))->SetCheck(1);
((CButton*)GetDlgItem(IDC_OUTPUTTYPE1+iSendType))->SetCheck(1);
((CButton*)GetDlgItem(IDC_WRITEFILE))->SetCheck(PortInfo[uid].bReciveFile );
((CButton*)GetDlgItem(IDC_READFILE))->SetCheck(PortInfo[uid].bSendFile);
GetDlgItem(IDC_WRITEFILENAME)->EnableWindow(PortInfo[uid].bReciveFile);
GetDlgItem(IDC_READFILENAME)->EnableWindow(PortInfo[uid].bSendFile);
// GetDlgItem(IDC_SENDLINE)->EnableWindow(PortInfo[uid].bSendFile);
GetDlgItem(IDC_GETREADFILE)->EnableWindow(PortInfo[uid].bSendFile);
((CButton*)GetDlgItem(IDC_SENDLINE))->SetCheck(PortInfo[uid].bSendLine );
// ((CButton*)GetDlgItem(IDC_INCLUDN))->SetCheck(PortInfo[uid].bHaveCR );
BOOL sb=PortInfo[uid].nUseTime!= 0 ? TRUE : FALSE;
((CButton*)GetDlgItem(IDC_CKC_TIME))->SetCheck(sb);
GetDlgItem(IDC_EDIT_TIME)->EnableWindow(sb);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CConfig::OnOK()
{
UpdateData();
DWORD dwCommEvents = 0;
if(((CButton*)GetDlgItem(IDC_CHECK1))->GetCheck()) dwCommEvents |= EV_BREAK;
if(((CButton*)GetDlgItem(IDC_CHECK2))->GetCheck()) dwCommEvents |= EV_CTS;
if(((CButton*)GetDlgItem(IDC_CHECK3))->GetCheck()) dwCommEvents |= EV_DSR;
if(((CButton*)GetDlgItem(IDC_CHECK4))->GetCheck()) dwCommEvents |= EV_ERR;
if(((CButton*)GetDlgItem(IDC_CHECK5))->GetCheck()) dwCommEvents |= EV_RING;
if(((CButton*)GetDlgItem(IDC_CHECK6))->GetCheck()) dwCommEvents |= EV_RLSD;
if(((CButton*)GetDlgItem(IDC_CHECK7))->GetCheck()) dwCommEvents |= EV_RXCHAR;
if(((CButton*)GetDlgItem(IDC_CHECK8))->GetCheck()) dwCommEvents |= EV_RXFLAG;
if(((CButton*)GetDlgItem(IDC_CHECK9))->GetCheck()) dwCommEvents |= EV_TXEMPTY;
PortInfo[uid].dwCommEvents =dwCommEvents;//事件
char buf[25];
GetDlgItemText(IDC_PARITYCOMBO,buf,25);
PortInfo[uid].Parity=buf[0];
PortInfo[uid].Baud=GetDlgItemInt(IDC_BAUDRATECOMBO);
PortInfo[uid].DataBits=GetDlgItemInt(IDC_DATABITSCOMBO);
GetDlgItemText(IDC_STOPBITSCOMBO,buf,25);
strcpy(PortInfo[uid].StopsBits,buf);
//=GetDlgItemInt(IDC_STOPBITSCOMBO);
// =((CComboBox*)(GetDlgItem(IDC_STOPBITSCOMBO)))->GetCurSel();
PortInfo[uid].nBufferSize=GetDlgItemInt(IDC_SENDBUFFERCOMBO);
PortInfo[uid].iReciveType=iReciveType;
PortInfo[uid].iSendType=iSendType;
PortInfo[uid].bReciveFile =((CButton*)GetDlgItem(IDC_WRITEFILE))->GetCheck();
PortInfo[uid].bSendFile =((CButton*)GetDlgItem(IDC_READFILE))->GetCheck();
PortInfo[uid].stReciveFileName =m_ReciveFile;
PortInfo[uid].stSendFileName =m_ReadFile;
PortInfo[uid].bSendLine=((CButton*)GetDlgItem(IDC_SENDLINE))->GetCheck();
BOOL sb=((CButton*)GetDlgItem(IDC_CKC_TIME))->GetCheck();
if(sb) PortInfo[uid].nUseTime=m_time ;
else PortInfo[uid].nUseTime=0 ;
CDialog::OnOK();
}
void CConfig::OnWritefile()
{
BOOL sb=((CButton*)GetDlgItem(IDC_WRITEFILE))->GetCheck();
GetDlgItem(IDC_WRITEFILENAME)->EnableWindow(sb);
GetDlgItem(IDC_GETWRITEFILE)->EnableWindow(sb);
}
void CConfig::OnReadfile()
{
BOOL sb=((CButton*)GetDlgItem(IDC_READFILE))->GetCheck();
GetDlgItem(IDC_READFILENAME)->EnableWindow(sb);
// GetDlgItem(IDC_SENDLINE)->EnableWindow(sb);
GetDlgItem(IDC_GETREADFILE)->EnableWindow(sb);
// GetDlgItem(IDC_INCLUDN)->EnableWindow(sb);
}
void CConfig::OnGetreadfile()
{
char buf[256];
GetCurrentDirectory(256,buf);
strcat(buf,"\\*.txt");
CFileDialog f(TRUE,"txt",buf,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"打開文本文件 (*.txt)|*.txt");
if(f.DoModal()!=IDOK) return;
m_ReadFile =f.GetPathName();
UpdateData(FALSE);
}
void CConfig::OnInputtype1()
{
iReciveType =0;
}
void CConfig::OnInputtype2()
{
iReciveType =1;
}
void CConfig::OnOutputtype1()
{
iSendType=0;
}
void CConfig::OnOutputtype2()
{
iSendType=1;
}
void CConfig::OnSendline()
{
PortInfo[uid].bSendLine =((CButton*)GetDlgItem(IDC_SENDLINE))->GetCheck();
}
void CConfig::OnIncludn()
{
PortInfo[uid].bHaveCR =((CButton*)GetDlgItem(IDC_INCLUDN))->GetCheck();
}
void CConfig::OnKillfocusWritefilename()
{
UpdateData();
}
void CConfig::OnGetwritefile()
{
char buf[256];
GetCurrentDirectory(256,buf);
strcat(buf,"\\*.txt");
CFileDialog f(FALSE,"txt",buf,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"保存文本文件 (*.txt)|*.txt");
if(f.DoModal()!=IDOK) return;
m_ReciveFile =f.GetPathName();
UpdateData(FALSE);
}
void CConfig::OnCkcTime()
{
BOOL sb=((CButton*)GetDlgItem(IDC_CKC_TIME))->GetCheck();
GetDlgItem(IDC_EDIT_TIME)->EnableWindow(sb);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -