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

📄 serialport.cpp

📁 AliEditor_Source code
💻 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 + -