📄 dlgconfig.cpp
字号:
// DlgConfig.cpp : implementation file
//
#include "stdafx.h"
#include "ShoolCard.h"
#include "DlgConfig.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include "Config.h"
extern CConfig gConfig;
/////////////////////////////////////////////////////////////////////////////
// CDlgConfig dialog
CDlgConfig::CDlgConfig(CWnd* pParent /*=NULL*/)
: CDialog(CDlgConfig::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgConfig)
//}}AFX_DATA_INIT
}
void CDlgConfig::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgConfig)
DDX_Control(pDX, IDC_COMBO_PORT_NUM, m_PortNum);
DDX_Control(pDX, IDC_COMBO_STOP_BIT, m_StopBit);
DDX_Control(pDX, IDC_COMBO_SPEED_RATE, m_SpeedRate);
DDX_Control(pDX, IDC_COMBO_DATA_BIT, m_DateBit);
DDX_Control(pDX, IDC_COMBO_CHECK_BIT, m_CheckBit);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgConfig, CDialog)
//{{AFX_MSG_MAP(CDlgConfig)
ON_WM_SHOWWINDOW()
ON_CBN_DBLCLK(IDC_COMBO_PORT_NUM, OnDblclkComboPortNum)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgConfig message handlers
void CDlgConfig::ReadConfig()
{
CWinApp *pApp = AfxGetApp();
gConfig.Port = pApp->GetProfileString( "comport","Port","COM1");
gConfig.Speed = pApp->GetProfileString( "comport","Speed","9600");
gConfig.DataBit = pApp->GetProfileString( "comport","DataBit","8");
gConfig.CheckBit = pApp->GetProfileString( "comport","CheckBit","None");
gConfig.StopBit = pApp->GetProfileString( "comport","StopBit","1");
}
void CDlgConfig::WriteConfig()
{
CWinApp *pApp = AfxGetApp();
pApp->WriteProfileString("comport","Port",gConfig.Port);
pApp->WriteProfileString("comport","Speed",gConfig.Speed);
pApp->WriteProfileString("comport","DataBit",gConfig.DataBit);
pApp->WriteProfileString("comport","CheckBit",gConfig.CheckBit);
pApp->WriteProfileString("comport","StopBit",gConfig.StopBit);
}
void CDlgConfig::FillForm()
{
//===============填充串口数============
m_PortNum.Clear();
m_PortNum.AddString("COM1");
m_PortNum.AddString("COM2");
m_PortNum.AddString("COM3");
m_PortNum.AddString("COM4");
//===============填充传输率=============
m_SpeedRate.Clear();
m_SpeedRate.AddString("110");
m_SpeedRate.AddString("300");
m_SpeedRate.AddString("600");
m_SpeedRate.AddString("1200");
m_SpeedRate.AddString("2400");
m_SpeedRate.AddString("4800");
m_SpeedRate.AddString("9600");
m_SpeedRate.AddString("14400");
m_SpeedRate.AddString("19200");
m_SpeedRate.AddString("28800");
m_SpeedRate.AddString("38400");
m_SpeedRate.AddString("56000");
m_SpeedRate.AddString("11520");
m_SpeedRate.AddString("12800");
m_SpeedRate.AddString("25600");
m_SpeedRate.AddString("38400");
//===============填充数据位=================
m_DateBit.Clear();
m_DateBit.AddString("4");
m_DateBit.AddString("5");
m_DateBit.AddString("6");
m_DateBit.AddString("7");
m_DateBit.AddString("8");
//===============填充校验位=================
m_CheckBit.Clear();
m_CheckBit.AddString("Even");
m_CheckBit.AddString("Odd");
m_CheckBit.AddString("None");
m_CheckBit.AddString("Mark");
m_CheckBit.AddString("Space");
//===============填充停止位=================
m_StopBit.Clear();
m_StopBit.AddString("1");
m_StopBit.AddString("1.5");
m_StopBit.AddString("2.5");
}
void CDlgConfig::ConfigControls()
{
CString str;
//===============匹配串口数============
m_PortNum.SetCurSel(-1);
for(int i=0;i<=m_PortNum.GetCount()-1;i++)
{
m_PortNum.GetLBText(i,str);
if(str == gConfig.Port)
{
m_PortNum.SetCurSel(i);
break;
}
}
//===============匹配传输率=============
m_SpeedRate.SetCurSel(-1);
for(i=0;i<=m_SpeedRate.GetCount()-1;i++)
{
m_SpeedRate.GetLBText(i,str);
if(str == gConfig.Speed)
{
m_SpeedRate.SetCurSel(i);
break;
}
}
//===============匹配数据位=================
m_DateBit.SetCurSel(-1);
for(i=0;i<=m_DateBit.GetCount()-1;i++)
{
m_DateBit.GetLBText(i,str);
if(str == gConfig.DataBit)
{
m_DateBit.SetCurSel(i);
break;
}
}
//===============匹配校验位=================
m_CheckBit.SetCurSel(-1);
for(i=0;i<=m_CheckBit.GetCount()-1;i++)
{
m_CheckBit.GetLBText(i,str);
if(str == gConfig.CheckBit)
{
m_CheckBit.SetCurSel(i);
break;
}
}
//===============匹配停止位=================
m_StopBit.SetCurSel(-1);
for(i=0;i<=m_StopBit.GetCount()-1;i++)
{
m_StopBit.GetLBText(i,str);
if(str == gConfig.StopBit)
{
m_StopBit.SetCurSel(i);
break;
}
}
}
void CDlgConfig::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialog::OnShowWindow(bShow, nStatus);
// TODO: Add your message handler code here
FillForm();
ConfigControls();
}
void CDlgConfig::OnOK()
{
// TODO: Add extra validation here
//UpdateData(true);
m_PortNum.GetWindowText(gConfig.Port);
m_SpeedRate.GetWindowText(gConfig.Speed);
m_DateBit.GetWindowText(gConfig.DataBit);
m_CheckBit.GetWindowText(gConfig.CheckBit);
m_StopBit.GetWindowText(gConfig.StopBit);
//写入配置文件
WriteConfig();
//关闭对话框
CDialog::OnOK();
}
void CDlgConfig::OnDblclkComboPortNum()
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -