⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlgconfig.cpp

📁 通用的餐饮收费系统:其主要技术是通过计算机串口与IC卡相关设备进行数据交互.
💻 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 + -