📄 setupcomdlg.cpp
字号:
// SetupComDlg.cpp : implementation file
//
#include "stdafx.h"
#include "SerialTool.h"
#include "SetupComDlg.h"
#include "SerialToolDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSetupComDlg dialog
CSetupComDlg::CSetupComDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSetupComDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSetupComDlg)
//}}AFX_DATA_INIT
}
void CSetupComDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSetupComDlg)
DDX_Control(pDX, IDC_COM_STOPBIT, m_comStopBit);
DDX_Control(pDX, IDC_COM_DATABIT, m_comDataBit);
DDX_Control(pDX, IDC_COM_CHECKBIT, m_comCheckBit);
DDX_Control(pDX, IDC_COM_COM, m_comCom);
DDX_Control(pDX, IDC_COM_BAUDRATE, m_comBaudRate);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSetupComDlg, CDialog)
//{{AFX_MSG_MAP(CSetupComDlg)
ON_BN_CLICKED(IDC_BUTTON_SAVE, OnButtonSave)
ON_BN_CLICKED(IDC_BUTTON_CANCEL, OnButtonCancel)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSetupComDlg message handlers
BOOL CSetupComDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CSerialToolDlg *pDlg;
pDlg = (CSerialToolDlg *)AfxGetMainWnd();
int nComNum =pDlg->m_nCom;// pDlg->m_ThreadSerial
char szCom[10];
char szTemp[10];
ZeroMemory(&szCom,sizeof(szCom));
ZeroMemory(&szTemp,sizeof(szTemp));
int i;
for(i= 1;i<9;i++)
{
strcpy(szCom,"COM");
strcat(szCom,itoa(i,szTemp,10));
m_comCom.AddString((LPCTSTR)szCom);
}
m_comCom.SetCurSel(nComNum - 1);
int nBaudRate = pDlg->m_ThreadSerial.GetBaudRate();
strcpy(szBaudRate[0],"110");
strcpy(szBaudRate[1],"300");
strcpy(szBaudRate[2],"600");
strcpy(szBaudRate[3],"1200");
strcpy(szBaudRate[4],"2400");
strcpy(szBaudRate[5],"4800");
strcpy(szBaudRate[6],"9600");
strcpy(szBaudRate[7],"14400");
strcpy(szBaudRate[8],"19200");
strcpy(szBaudRate[9],"38400");
strcpy(szBaudRate[10],"56000");
strcpy(szBaudRate[11],"57600");
strcpy(szBaudRate[12],"115200");
strcpy(szBaudRate[13],"128000");
strcpy(szBaudRate[14],"256000");
for(i=0;i<15;i++)
{
m_comBaudRate.AddString((LPCTSTR)szBaudRate[i]);
}
itoa(nBaudRate,szTemp,10);
m_comBaudRate.SetWindowText((LPCTSTR)szTemp);
int nDataBit = pDlg->m_ThreadSerial.GetDataBit();
strcpy(szDataBit[0],"4");
strcpy(szDataBit[1],"5");
strcpy(szDataBit[2],"6");
strcpy(szDataBit[3],"7");
strcpy(szDataBit[4],"8");
for(i=0;i<5;i++)
{
m_comDataBit.AddString((LPCTSTR)szDataBit[i]);
}
ZeroMemory(&szTemp,sizeof(szTemp));
itoa(nDataBit,szTemp,10);
m_comDataBit.SetWindowText((LPCTSTR)szTemp);
int nCheckBit = pDlg->m_ThreadSerial.GetCheckBit();
char szCheckBit[5][10];
strcpy(szCheckBit[0],"无校验");
strcpy(szCheckBit[1],"奇校验");
strcpy(szCheckBit[2],"偶校验");
strcpy(szCheckBit[3],"MARK");
strcpy(szCheckBit[4],"SPACE");
for(i=0;i<5;i++)
{
m_comCheckBit.AddString((LPCTSTR)szCheckBit[i]);
}
m_comCheckBit.SetCurSel(nCheckBit);
int nStopBit = pDlg->m_ThreadSerial.GetStopBit();
char szStopBit[3][10];
strcpy(szStopBit[0],"1");
strcpy(szStopBit[1],"1.5");
strcpy(szStopBit[2],"2");
for(i=0;i<3;i++)
{
m_comStopBit.AddString((LPCTSTR)szStopBit[i]);
}
m_comStopBit.SetCurSel(nStopBit);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CSetupComDlg::OnButtonSave()
{
// TODO: Add your control notification handler code here
CSerialToolDlg *pDlg;
pDlg = (CSerialToolDlg *)AfxGetMainWnd();
pDlg->m_nCom = m_comCom.GetCurSel()+1 ;
//保存设置的串口
char szTemp[10];
ZeroMemory(&szTemp,sizeof(szTemp));
m_comBaudRate.GetWindowText(szTemp,10);
int nBaudRate = atoi(szTemp);
ZeroMemory(&szTemp,sizeof(szTemp));
m_comDataBit.GetWindowText(szTemp,10);
int nDataBit = atoi(szTemp);
int nStopBit = m_comStopBit.GetCurSel();
int nCheckBit = m_comCheckBit.GetCurSel();
pDlg->m_ThreadSerial.SetDCB(nBaudRate,nDataBit,nCheckBit,nStopBit);
OnOK();
}
void CSetupComDlg::OnButtonCancel()
{
// TODO: Add your control notification handler code here
OnCancel();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -