📄 setsv.cpp
字号:
// setsv.cpp : implementation file//#include "stdafx.h"#include "水箱实验.h"#include "setsv.h"#include "conio.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// Csetsv dialogCsetsv::Csetsv(CWnd* pParent /*=NULL*/) : CDialog(Csetsv::IDD, pParent){ base=0x0100; //{{AFX_DATA_INIT(Csetsv) m_peroutput1 = _T(""); m_peroutput2 = _T(""); m_getsetsv1 = 0; m_getsetsv2 = 0; //}}AFX_DATA_INIT}void Csetsv::DoDataExchange(CDataExchange* pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(Csetsv) DDX_Control(pDX, IDC_GETSETSV2, m_getsetsv2edit); DDX_Control(pDX, IDC_GETSETSV1, m_getsetsv1edit); DDX_Text(pDX, IDC_PEROUTPUT1, m_peroutput1); DDX_Text(pDX, IDC_PEROUTPUT2, m_peroutput2); DDX_Text(pDX, IDC_GETSETSV1, m_getsetsv1); DDX_Text(pDX, IDC_GETSETSV2, m_getsetsv2); //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(Csetsv, CDialog) //{{AFX_MSG_MAP(Csetsv) ON_EN_CHANGE(IDC_GETSETSV1, OnChangeGetsetsv1) ON_EN_CHANGE(IDC_GETSETSV2, OnChangeGetsetsv2) ON_WM_PAINT() //}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// Csetsv message handlersBOOL Csetsv::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here if(aorm) m_getsetsv1edit.LimitText(4); else m_getsetsv1edit.LimitText(5); if(aorm2) m_getsetsv2edit.LimitText(4); else m_getsetsv2edit.LimitText(5); int m_percent1=GetDlgItemInt(IDC_GETSETSV1); int m_percent2=GetDlgItemInt(IDC_GETSETSV2); //data=float(m_percent*16.0/100+4);控制量 if(aorm==1 && !(aorm2==2)) persv1=float(m_percent1-1000)/40; if(aorm==0 && !(aorm2==2)) persv1=float(m_percent1-4000)/160; if(aorm2==1 && !(aorm==2)) persv2=float(m_percent2-1000)/40; if(aorm2==0 && !(aorm==2)) persv2=float(m_percent2-4000)/160; //int number=GetDlgItemInt(IDC_EDIT2,NULL,TRUE); //SetData(number,data); m_peroutput1.Format("%4.2f",persv1); m_peroutput1+="%"; m_peroutput2.Format("%4.1f",persv2); m_peroutput2+="%"; SetDlgItemText(IDC_PEROUTPUT1,m_peroutput1); SetDlgItemText(IDC_PEROUTPUT2,m_peroutput2); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE}void Csetsv::OnChangeGetsetsv1() { // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the CDialog::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. // TODO: Add your control notification handler code here int m_percent1=GetDlgItemInt(IDC_GETSETSV1); if(aorm==1 && !(aorm2==2)) persv1=float(m_percent1-1000)/40; if(aorm==0 && !(aorm2==2)) persv1=float(m_percent1-4000)/160; m_peroutput1.Format("%4.2f",persv1); m_peroutput1+="%"; SetDlgItemText(IDC_PEROUTPUT1,m_peroutput1);}void Csetsv::OnOK() { // TODO: Add extra validation here //SetData(number,data); int m_percent1=GetDlgItemInt(IDC_GETSETSV1); data1=float(m_percent1/1000); SetData1(data1); int m_percent2=GetDlgItemInt(IDC_GETSETSV2); data2=float(m_percent2/1000); SetData2(data2); CDialog::OnOK();}float Csetsv::SetData1(float data1){ unsigned int datapv,temp,temp1,temp2; int dah,dal; int number=1; float a; a=(float)4095*16.0/4096+4; if(data1>=a) data1=a; datapv=(int)((data1-4)*4096/16); temp1=temp2=datapv; temp=0xff; dah=temp1>>4; temp2=temp2<<4; temp2=temp2&temp; dal=temp2; _outp(base+2*number+2,dah); _outp(base+2*number+3,dal); _inp(base+0); return(data1);}float Csetsv::SetData2(float data2){ unsigned int datapv,temp,temp1,temp2; int dah,dal; int number=2; float a; a=(float)4095*16.0/4096+4; if(data2>=a) data2=a; datapv=(int)((data2-4)*4096/16); temp1=temp2=datapv; temp=0xff; dah=temp1>>4; temp2=temp2<<4; temp2=temp2&temp; dal=temp2; _outp(base+2*number+2,dah); _outp(base+2*number+3,dal); _inp(base+0); return(data2);}void Csetsv::OnChangeGetsetsv2() { // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the CDialog::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. // TODO: Add your control notification handler code here int m_percent2=GetDlgItemInt(IDC_GETSETSV2); if(aorm2==1 && !(aorm==2)) persv2=float(m_percent2-1000)/40; if(aorm2==0 && !(aorm==2)) persv2=float(m_percent2-4000)/160; m_peroutput2.Format("%4.2f",persv2); m_peroutput2+="%"; SetDlgItemText(IDC_PEROUTPUT2,m_peroutput2); }void Csetsv::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: Add your message handler code here HWND edit; GetDlgItem(IDC_GETSETSV1,&edit); ::SetFocus(edit); // Do not call CDialog::OnPaint() for painting messages}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -