📄 commsettingdlg.cpp
字号:
// CommSettingDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Alert.h"
#include "CommSettingDlg.h"
#include "regKey.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
CString GetSetting(CString key, CString ValueName)
{
CString res;
DWORD count=100;
CRegKey regKey;
regKey.Open(HKEY_CURRENT_USER,"Software\\Alert\\"+key);
regKey.QueryValue(res.GetBuffer(100),ValueName,&count);
res.ReleaseBuffer();
regKey.Close();
return res;
}
void SaveSetting(CString key,CString ValueName,CString value)
{
CRegKey regKey;
regKey.Create(HKEY_CURRENT_USER,"Software\\Alert\\"+key);
regKey.Open(HKEY_CURRENT_USER,"Software\\Alert\\"+key);
regKey.SetValue(value,ValueName);
regKey.Close();
}
/////////////////////////////////////////////////////////////////////////////
// CCommSettingDlg dialog
CCommSettingDlg::CCommSettingDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCommSettingDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CCommSettingDlg)
m_strChoose = _T("串口1");
m_strDataBits = _T("8");
m_strParity = _T("N");
m_strSpeed = _T("9600");
m_strStopBits = _T("1");
//}}AFX_DATA_INIT
m_nFlow=0;
}
void CCommSettingDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCommSettingDlg)
DDX_Text(pDX, IDC_COMMCHOOSE, m_strChoose);
DDX_CBString(pDX, IDC_DATABITS, m_strDataBits);
DDX_CBString(pDX, IDC_PARITY, m_strParity);
DDX_CBString(pDX, IDC_SPEED, m_strSpeed);
DDX_CBString(pDX, IDC_STOPBITS, m_strStopBits);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCommSettingDlg, CDialog)
//{{AFX_MSG_MAP(CCommSettingDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCommSettingDlg message handlers
BOOL CCommSettingDlg::OnInitDialog()
{
CString commSetting = GetSetting(CString("PortSetting\\Com")+m_strChoose.Right(1)+"\\", "commSetting");
CString commHandShaking = GetSetting(CString("PortSetting\\Com")+m_strChoose.Right(1)+"\\", "commHandshaking");
if(commSetting!="" && commHandShaking!="")
{
int index1,index2,index3;
index1=commSetting.Find(',',0);
index2=commSetting.Find(',',index1+1);
index3=commSetting.Find(',',index2+1);
m_strSpeed=commSetting.Left(index1);
m_strParity=commSetting.Mid(index1+1,index2-index1-1);
char c=m_strParity.GetAt(0);
switch(c)
{
case 'N':
m_strParity="None";
break;
case 'O':
m_strParity="Odd";
break;
case 'E':
m_strParity="Even";
break;
case 'M':
m_strParity="Mark";
break;
case 'S':
m_strParity="Space";
break;
default:
m_strParity="None";
break;
}
m_strDataBits=commSetting.Mid(index2+1,index3-index2-1);
m_strStopBits=commSetting.Mid(index3+1);
m_nFlow = atoi(commHandShaking.GetBuffer(10));
}
CDialog::OnInitDialog();
// TODO: Add extra initialization here
((CButton*)GetDlgItem(IDC_RADIO1+m_nFlow))->SetCheck(1);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CCommSettingDlg::OnOK()
{
// TODO: Add extra validation here
if (!UpdateData(TRUE))
{
TRACE0("UpdateData failed during dialog termination.\n");
// the UpdateData routine will set focus to correct item
return;
}
m_nFlow=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO4)-IDC_RADIO1;
CString commSetting=m_strSpeed+","+m_strParity.Left(1)+","+m_strDataBits+","+m_strStopBits;
CString commHandShaking;
itoa(m_nFlow,commHandShaking.GetBuffer(10),10);
commHandShaking.ReleaseBuffer();
SaveSetting(CString("PortSetting\\Com")+m_strChoose.Right(1),"commSetting",commSetting);
SaveSetting(CString("PortSetting\\Com")+m_strChoose.Right(1),"commHandShaking",commHandShaking);
EndDialog(IDOK);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -