📄 serialport.cpp
字号:
// SerialPort.cpp : implementation file
//
#include "stdafx.h"
#include "AliEditor.h"
#include "SerialPort.h"
#include "StringLine.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSerialPort dialog
CSerialPort::CSerialPort(CWnd* pParent /*=NULL*/)
: CDialog(CSerialPort::IDD, pParent)
{
//{{AFX_DATA_INIT(CSerialPort)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_com_port_val = 0;
m_bits_rate_val = 0;
m_data_parity_val = 0;
m_data_bits_val = 0;
m_stop_bits_val = 0;
}
void CSerialPort::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSerialPort)
DDX_Control(pDX, IDC_STOP_BITS, m_stop_bits);
DDX_Control(pDX, IDC_DATA_BITS, m_data_bits);
DDX_Control(pDX, IDC_PORT_PARITY, m_port_parity);
DDX_Control(pDX, IDC_BITS_RATE, m_bits_rate);
DDX_Control(pDX, IDC_COM_PORT, m_com_port);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSerialPort, CDialog)
//{{AFX_MSG_MAP(CSerialPort)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSerialPort message handlers
BOOL CSerialPort::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
/*
HKEY hKey;
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\AliEditor", 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
{
int port_sel = 0;
unsigned long length;
RegQueryValueEx(hKey, "Serial Port", NULL, NULL, NULL, &length);//read length
if(RegQueryValueEx(hKey, "Serial Port", NULL, NULL, (unsigned char*)&port_sel, &length) == ERROR_SUCCESS)
{
m_com_port_val = port_sel;
}
RegCloseKey(hKey);
}
*/
m_com_port.SetCurSel(m_com_port_val);
m_bits_rate.SetCurSel(m_bits_rate.GetCount() - 1);
m_port_parity.SetCurSel(0);
m_data_bits.SetCurSel(m_data_bits.GetCount() - 1);
m_stop_bits.SetCurSel(0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CSerialPort::OnOK()
{
// TODO: Add extra validation here
UpdateData(TRUE);
m_com_port_val = m_com_port.GetCurSel();
CString str;
m_bits_rate.GetLBText(m_bits_rate.GetCurSel(), str);
CStringLines m_strline;
m_bits_rate_val = m_strline.GetDigitValue(str);
m_data_parity_val = 0;
m_data_bits_val = 0;
m_stop_bits_val = 0;
HKEY hKey;
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\AliEditor", 0, KEY_READ, &hKey) != ERROR_SUCCESS)
{
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE", 0, KEY_WRITE, &hKey) == ERROR_SUCCESS)
{
if(RegCreateKey(hKey, "AliEditor", &hKey) == ERROR_SUCCESS)
RegCloseKey(hKey);
}
}
else
RegCloseKey(hKey);
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\AliEditor", 0, KEY_WRITE, &hKey) == ERROR_SUCCESS)
{
RegSetValueEx(hKey, "Serial Port", 0, REG_DWORD, (const unsigned char*)&m_com_port_val, sizeof(int));
RegCloseKey(hKey);
}
CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -