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

📄 ddjdzsz.cpp

📁 实现智能大厦自动报警系统主要是通过串口通信来实现的。计算机对数模转换设备发送到端口的数据进行处理
💻 CPP
字号:
// Ddjdzsz.cpp : implementation file
//

#include "stdafx.h"
#include "yhjk.h"
#include "Ddjdzsz.h"
#include "ExternDllHeader.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDdjdzsz dialog


CDdjdzsz::CDdjdzsz(CWnd* pParent /*=NULL*/)
	: CDialog(CDdjdzsz::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDdjdzsz)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CDdjdzsz::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDdjdzsz)
	DDX_Control(pDX, IDC_EDTNAME, m_EdtName);
	DDX_Control(pDX, IDC_EDTID, m_EdtID);
	DDX_Control(pDX, IDC_BUT_SAVE, m_ButSave);
	DDX_Control(pDX, IDC_BUT_EXIT, m_ButExit);
	DDX_Control(pDX, IDC_BUT_ADD, m_ButAdd);
	DDX_Control(pDX, IDC_LIST, m_Grid);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDdjdzsz, CDialog)
	//{{AFX_MSG_MAP(CDdjdzsz)
	ON_NOTIFY(LVN_ITEMCHANGING, IDC_LIST, OnItemchangingList)
	ON_BN_CLICKED(IDC_BUT_ADD, OnButAdd)
	ON_BN_CLICKED(IDC_BUT_SAVE, OnButSave)
	ON_BN_CLICKED(IDC_BUT_EXIT, OnButExit)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDdjdzsz message handlers

void CDdjdzsz::OnOK() 
{
	// TODO: Add extra validation here
	
//Dialog::OnOK();
}

BOOL CDdjdzsz::OnInitDialog() 
{
	CDialog::OnInitDialog();
	RxRecordset rst;
	rst.Open("动作设置表");
	this->m_Grid.SetRecordset(rst);	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDdjdzsz::OnItemchangingList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	CString sID,sName;
	sID=this->m_Grid.GetItemText(m_Grid.GetSelectionMark(),0);
	sName=this->m_Grid.GetItemText(m_Grid.GetSelectionMark(),1);
	m_EdtID.SetWindowText(sID);
	m_EdtName.SetWindowText(sName);
	*pResult = 0;
}

void CDdjdzsz::OnButAdd() 
{
	CString sNewID;
	sNewID=ado.AutoNumber("动作设置表","编号","",1);
	this->m_EdtID.SetWindowText(sNewID);
	this->Enabled(true);
	this->m_EdtName.SetWindowText("");
	this->m_EdtName.SetFocus();
}

void CDdjdzsz::Enabled(bool bEnabled)
{
	m_EdtName.EnableWindow(bEnabled);
	m_ButSave.EnableWindow(bEnabled);
	m_ButExit.EnableWindow(!bEnabled);
	m_ButAdd.EnableWindow(!bEnabled);
	m_Grid.EnableWindow(!bEnabled);

}	

void CDdjdzsz::OnButSave() 
{
	if(MessageBox("确定要保存记录吗?","系统提示",MB_OK|MB_ICONSTOP)!=1)
		return;
	CString sSQL,sID,sName;
	this->m_EdtID.GetWindowText(sID);
	this->m_EdtName.GetWindowText(sName);
	sSQL.Format("Insert Into 动作设置表 values(%s,'%s')",sID,sName);
	RxRecordset rst;
	rst.Open(sSQL,adCmdText);
	//向触警参数表中写入新数据
	rst.Open("系统设置表");
	CString sLayers,sAddrLength,sActLength,LayerID,sActID,sNewID;
	sLayers=rst.GetFieldValue("楼层数");
	sAddrLength=rst.GetFieldValue("地址编码长度");
	sActLength=rst.GetFieldValue("动作编码长度");

	rst.Open("动作设置表");
	int nCount=rst.GetRecordCount();
	for(int i=1;i<=atoi(sLayers);i++)
	{
		LayerID=TenToTwo(i);
		//用“0”将字符串添充到指定长度
		LayerID=Padl(LayerID,atoi(sAddrLength),"0",1);
		if(LayerID.GetLength()>=atoi(sAddrLength))
		{
			LayerID=LayerID.Right(atoi(sAddrLength));	
		}
		sActID=TenToTwo(atoi(sID));
		if(sActID.GetLength()>atoi(sActLength))
			sActID=sActID.Right(atoi(sActLength));
		if(sActID.GetLength()<atoi(sActLength))	
			sActID=Padl(sActID,atoi(sActLength),"0",1);
		sNewID=LayerID+sActID;
		sSQL.Format("Insert Into 处警参数设置表 Values('%s',%d,%s)",sNewID,i,sID);
		if(rst.Open(sSQL,adCmdText)==false)
			break;
	}
	this->Enabled(false);
	this->m_ButAdd.SetFocus();
	rst.Open("动作设置表");
	m_Grid.DeleteAllItems();
	m_Grid.AddCellText(rst);
}

void CDdjdzsz::OnButExit() 
{
	this->OnCancel();	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -