📄 mdlg.cpp
字号:
// MDLG.cpp : 实现文件
//
#include "stdafx.h"
#include "FZK.h"
#include "MDLG.h"
#include "prog.h"
#include "Seterr.h"
#include "Yougui.h"
#include ".\mdlg.h"
CString errmsg[]={"分油机马达发生故障","管路发生故障","加热系统出现故障", //0 1 2
"电磁阀出现故障","气动阀出现故障","水封存在故障","出水口跑油","出水口大量跑油", //3 4 5 6 7
"三通阀出现故障","排渣口跑油","配水盘出现故障", //8 9 10
"需要停机检修","系统稳定","分油机马达已开启", //11 12 13
"油泵已开启","加热器已开启","油柜油量不足","按Alarm加油" // 14 15 16 17
};
// CMDLG 对话框
//IMPLEMENT_DYNAMIC(CMDLG, CDialog)
CMDLG::CMDLG(CWnd* pParent /*=NULL*/)
: CDialog(CMDLG::IDD, pParent)
, ix(0)
, iy(0)
{
m_pParent = pParent;
m_nID = CMDLG::IDD;
ix=0;iy=0;
// isactive=0;
}
CMDLG::~CMDLG()
{
}
void CMDLG::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_SHOW1, str[0]);
DDX_Text(pDX, IDC_SHOW2, str[1]);
DDX_Text(pDX, IDC_SHOW3, str[2]);
DDX_Text(pDX, IDC_SHOW4, str[3]);
DDX_Control(pDX, IDC_JDT, mjd);
}
BEGIN_MESSAGE_MAP(CMDLG, CDialog)
// ON_BN_CLICKED(IDOK, OnBnClickedOk)
ON_BN_CLICKED(IDC_JJS, OnBnClickedJ)
ON_BN_CLICKED(IDC_JZJ, OnBnClickedA)
ON_WM_ERASEBKGND()
ON_WM_TIMER()
ON_WM_LBUTTONDOWN()
// ON_WM_ACTIVATE()
END_MESSAGE_MAP()
// CMDLG 消息处理程序
void CMDLG::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
// OnOK();
}
BOOL CMDLG::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CDialog::OnEraseBkgnd(pDC);
CRect rect;
GetWindowRect(&rect);
CDC memDC;
CBitmap cBitmap;
CBitmap* pOldMemBmp = NULL;
//将背景位图加到设备场景中
cBitmap.LoadBitmap(IDB_BKMAP);
memDC.CreateCompatibleDC(pDC);
pOldMemBmp = memDC.SelectObject(&cBitmap);
//将背景位图显示出来
pDC->BitBlt(0, 0, 860, 651, &memDC, 0, 0, SRCCOPY);
return TRUE;
}
BOOL CMDLG::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: 在此添加额外的初始化
//定位标准控件
CRect rect,rect2;
rect2.left=ix;
rect2.top=iy;
rect2.right=ix+863;
rect2.bottom=iy+651;
MoveWindow(&rect2,TRUE);
mjd.SetRange(0,10);
mjd.SetPos(5);
mjd.SetStep(1);
show[4]=5;
GetDlgItem(IDC_JDT)->GetClientRect(&rect);
rect2.left=53;
rect2.right=rect2.left+rect.Width();
rect2.top=130;
rect2.bottom=rect2.top+rect.Height();
GetDlgItem(IDC_JDT)->MoveWindow(&rect2,TRUE);
GetDlgItem(IDC_JJS)->GetClientRect(&rect);
rect2.left=53;
rect2.right=rect2.left+rect.Width();
rect2.top=150;
rect2.bottom=rect2.top+rect.Height();
GetDlgItem(IDC_JJS)->MoveWindow(&rect2,TRUE);
GetDlgItem(IDC_JZJ)->GetClientRect(&rect);
rect2.left=80;
rect2.right=rect2.left+rect.Width();
rect2.top=150;
rect2.bottom=rect2.top+rect.Height();
GetDlgItem(IDC_JZJ)->MoveWindow(&rect2,TRUE);
GetDlgItem(IDC_SHOW1)->GetClientRect(&rect);
rect2.left=351;
rect2.right=rect2.left+rect.Width();
rect2.top=195;
rect2.bottom=rect2.top+rect.Height();
GetDlgItem(IDC_SHOW1)->MoveWindow(&rect2,TRUE);
GetDlgItem(IDC_SHOW2)->GetClientRect(&rect);
rect2.left=795;
rect2.right=rect2.left+rect.Width();
rect2.top=175;
rect2.bottom=rect2.top+rect.Height();
GetDlgItem(IDC_SHOW2)->MoveWindow(&rect2,TRUE);
GetDlgItem(IDC_SHOW3)->GetClientRect(&rect);
rect2.left=64;
rect2.right=rect2.left+rect.Width();
rect2.top=399;
rect2.bottom=rect2.top+rect.Height();
GetDlgItem(IDC_SHOW3)->MoveWindow(&rect2,TRUE);
GetDlgItem(IDC_SHOW4)->GetClientRect(&rect);
rect2.left=130;
rect2.right=rect2.left+rect.Width();
rect2.top=120;
rect2.bottom=rect2.top+rect.Height();
GetDlgItem(IDC_SHOW4)->MoveWindow(&rect2,TRUE);
/*
str[0].Format("122MP");
UpdateData(FALSE);
*/
// 载入要使用的图片资源
bitmap[0].LoadBitmap(IDB_BKMAP); // 背景
bitmap[1].LoadBitmap(IDB_BANG); // 泵动画
bitmap[2].LoadBitmap(IDB_BIAOZHEN); // 电流表指针
bitmap[3].LoadBitmap(IDB_FA); // 阀
bitmap[4].LoadBitmap(IDB_JIANTOU); // 箭头
bitmap[5].LoadBitmap(IDB_DENGB); // 灯黑
bitmap[6].LoadBitmap(IDB_DENGG); // 灯绿
bitmap[7].LoadBitmap(IDB_DENGRA); // 灯红暗
bitmap[8].LoadBitmap(IDB_DENGRL); // 灯红亮
bitmap[9].LoadBitmap(IDB_GGKG); // 工况开关
bitmap[10].LoadBitmap(IDB_GAOJH); // 告警灯红
bitmap[11].LoadBitmap(IDB_YOUGUI); // 油柜
//初始化控件
//阀 按钮等
for(int bufi=0;bufi<20;bufi++)
{
m_kj[bufi].Init(&bitmap[3]);
m_kj[bufi].SetNty(bufi);
}
m_kj[20].Init(&bitmap[9]);
for(int bufi=21;bufi<24;bufi++)
m_kj[bufi].Init(&bitmap[6]);
m_kj[24].Init(&bitmap[6]);
m_kj[25].Init(&bitmap[8]);
m_kj[26].Init(&bitmap[7]);
m_kj[27].Init(&bitmap[8]);
m_kj[28].Init(&bitmap[8]);
for(int bufi=20;bufi<29;bufi++)
m_kj[bufi].SetNty(bufi);
//箭头,泵
m_dh[0].Init(&bitmap[1]);
m_dh[0].SetNty(0);
for(int bufi=1;bufi<18;bufi++)
{
m_dh[bufi].Init(&bitmap[4]);
m_dh[bufi].SetNty(bufi);
}
m_dh[18].Init(&bitmap[10]);
m_dh[18].SetNty(18);
for(int bufi=19;bufi<21;bufi++)
{
m_dh[bufi].Init(&bitmap[4]);
m_dh[bufi].SetNty(bufi);
}
//初始化虚拟机
dlay=0;
setp=0;
alarmsp=0;
script=0;
isrun=0;
dostop=0;
//初始化故障
errn=-1;
//初始化显示
for(int bufi=0;bufi<4;bufi++)
{
show[bufi]=0;
setshow[bufi]=0;
}
//初始化错误提示
m_errout.Init();
//初始化油柜
for(int bufi=0;bufi<3;bufi++)
{
m_youg[bufi].Init(&bitmap[11]);
m_youg[bufi].SetSty(bufi);
m_youg[bufi].reset();
m_youg[bufi].SetCanchage(0);
}
m_youg[0].ste=-show[4]*10-10;
m_youg[1].ste=show[4]*10;
m_youg[2].ste=show[4]*5;
sdrst=0;
// 设置定时器
SetTimer(100,100,NULL);
SetTimer(101,10,NULL);
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
void CMDLG::OnTimer(UINT nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if(nIDEvent==100)
{
if(dlay>0) dlay--;
else dlay=0;
chk();
Drewme();
}
else if(nIDEvent==101)
{
luoji();
}
//表盘指针
// mdc.SelectObject(&bitmap[3]);
// dc->BitBlt(0,538,199,99,&mdc,0,0,SRCCOPY);
// mdc.SelectObject(&bitmap[4]);
// dc->BitBlt(tmp,570,7,60,&mdc,0,0,SRCAND);
CDialog::OnTimer(nIDEvent);
}
BOOL CMDLG::Create()
{
return CDialog::Create(m_nID, m_pParent);
}
void CMDLG::OnOK()
{
return;
}
void CMDLG::OnCancel()
{
return;
DestroyWindow();
}
void CMDLG::PostNcDestroy()
{
// TODO: 在此添加专用代码和/或调用基类
delete this;
// CDialog::PostNcDestroy();
}
void CMDLG::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
int bufi=chkrect(point);
CString sbuf;
if(bufi!=-1) // 如果有控件被单击
{
if(bufi<21) m_kj[bufi].ChangeN();
if(bufi==0)
{
if(m_kj[0].GetN()) m_dh[19].ChangeN(-1);
else m_dh[19].ChangeN(0);
}
else if(bufi==1)
{
if(m_kj[1].GetN()) m_dh[20].ChangeN(-1);
else m_dh[20].ChangeN(0);
}
if(bufi==24) // Start被单击
{
if(m_kj[24].GetN()) return;
if(errn==0||errn==1||errn==2)
{
m_kj[bufi].ChangeN(0);
return;
}
if(isrun==1)
{
m_errout.Adderr(1,"上一个步骤还未完成");
return;
}
for(int i=0;i<9;i++)
{
if(!m_kj[i].GetN())
{
m_kj[bufi].ChangeN(0);
sbuf.Format("手动阀%d还没有开启",i+1);
m_errout.Adderr(1,sbuf);
return;
}
}
if(!m_kj[23].GetN())
{
m_kj[bufi].ChangeN(0);
sbuf.Format("加热器还没有开启");
m_errout.Adderr(1,sbuf);
return;
}
m_kj[bufi].ChangeN(1);
for(int i=0;i<10;i++)
m_kj[i].SetUse(0);
m_kj[20].SetUse(0);
if(m_kj[20].GetN())
prog=star2;
else
{
switch(errn) {
case 3:
prog=err_dcf;
break;
case 4:
prog=err_qd;
break;
case 5:
prog=err_sf;
break;
case 6:
prog=err_csk;
break;
case 7:
prog=err_cskd;
break;
case 8:
prog=err_stf;
break;
case 9:
prog=err_pzk;
break;
default:
prog=star;
}
}
isrun=1;
setp=0;
dlay=0;
m_errout.Adderr(0,"启动自动过程");
}
else if(bufi==22)//油泵
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -