📄 pickermonitor.cpp
字号:
// PickerMonitor.cpp: implementation of the CPickerMonitor class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "OIL.h"
#include "PickerMonitor.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CPickerMonitor::CPickerMonitor(int nIndex)
{
//创建控件
CreatControls(nIndex);
//已设发油个数为0
m_nSeted=0;
//设置本身序号
m_nIndex=nIndex;
//鹤位有效
m_bValid=true;
//错误个数为0
m_nErrors=0;
}
CPickerMonitor::~CPickerMonitor()
{
}
//创建监控控件
void CPickerMonitor::CreatControls(int nIndex)
{
//控件区域
CRect rect;
rect.left = 10;
rect.top = 20*nIndex+50;
rect.right = rect.left + 30;
rect.bottom = rect.top + 18;
//父窗口
CWnd * m_pWnd=AfxGetApp()->m_pMainWnd;
//鹤位ID
m_PickerID.Create(WS_EX_CLIENTEDGE|ES_CENTER|ES_AUTOHSCROLL|ES_LEFT|ES_NOHIDESEL|WS_CHILD|WS_VISIBLE,rect,m_pWnd,PICKERID(nIndex));
CString strTemp;
strTemp.Format("%d",nIndex);
m_PickerID.SetWindowText(strTemp);
//总计发油
rect.left=rect.right+2;
rect.right=rect.left+70;
m_TotalOIl.Create(WS_EX_CLIENTEDGE|ES_AUTOHSCROLL|ES_LEFT|ES_NOHIDESEL|WS_CHILD|WS_VISIBLE,rect,m_pWnd,TOTALOIL(nIndex));
m_TotalOIl.SetWindowText("0");
//本班发油
rect.left=rect.right+2;
rect.right=rect.left+70;
m_TurnOil.Create(WS_EX_CLIENTEDGE|ES_AUTOHSCROLL|ES_LEFT|ES_NOHIDESEL|WS_CHILD|WS_VISIBLE,rect,m_pWnd,TURNOIL(nIndex));
m_TurnOil.SetWindowText("0");
//空闲
rect.left=rect.right+2;
rect.right=rect.left+15;
m_Temp.Create(NULL,BS_CHECKBOX|WS_EX_CLIENTEDGE|ES_AUTOHSCROLL|ES_LEFT|ES_NOHIDESEL|WS_CHILD|WS_VISIBLE,rect,m_pWnd,TEMP(nIndex));
m_Temp.SetCheck(1);
//设置量
rect.left=rect.right+2;
rect.right=rect.left+75;
m_Set.Create(WS_EX_CLIENTEDGE|ES_AUTOHSCROLL|ES_LEFT|ES_NOHIDESEL|WS_CHILD|WS_VISIBLE,rect,m_pWnd,SET(nIndex));
m_Set.SetWindowText("0");
//已发量
rect.left=rect.right+2;
rect.right=rect.left+75;
m_Send.Create(WS_EX_CLIENTEDGE|ES_AUTOHSCROLL|ES_LEFT|ES_NOHIDESEL|WS_CHILD|WS_VISIBLE,rect,m_pWnd,SEND(nIndex));
m_Send.SetWindowText("0");
//发油进度条
rect.left=rect.right+2;
rect.right=rect.left+100;
m_Progress.Create(WS_EX_CLIENTEDGE|ES_AUTOHSCROLL|ES_LEFT|ES_NOHIDESEL|WS_CHILD|WS_VISIBLE,rect,m_pWnd,PROGRESS(nIndex));
//当前量
rect.left=rect.right+2;
rect.right=rect.left+65;
m_Current.Create(WS_EX_CLIENTEDGE|ES_AUTOHSCROLL|ES_LEFT|ES_NOHIDESEL|WS_CHILD|WS_VISIBLE,rect,m_pWnd,CURRENT(nIndex));
m_Current.SetWindowText("0");
//第二量
rect.left=rect.right+2;
rect.right=rect.left+65;
m_Second.Create(WS_EX_CLIENTEDGE|ES_AUTOHSCROLL|ES_LEFT|ES_NOHIDESEL|WS_CHILD|WS_VISIBLE,rect,m_pWnd,SECOND(nIndex));
m_Second.SetWindowText("0");
//第三量
rect.left=rect.right+2;
rect.right=rect.left+65;
m_Third.Create(WS_EX_CLIENTEDGE|ES_AUTOHSCROLL|ES_LEFT|ES_NOHIDESEL|WS_CHILD|WS_VISIBLE,rect,m_pWnd,THIRD(nIndex));
m_Third.SetWindowText("0");
//第四量
rect.left=rect.right+2;
rect.right=rect.left+65;
m_Forth.Create(WS_EX_CLIENTEDGE|ES_AUTOHSCROLL|ES_LEFT|ES_NOHIDESEL|WS_CHILD|WS_VISIBLE,rect,m_pWnd,FORTH(nIndex));
m_Forth.SetWindowText("0");
//第五量
rect.left=rect.right+2;
rect.right=rect.left+65;
m_Fifth.Create(WS_EX_CLIENTEDGE|ES_AUTOHSCROLL|ES_LEFT|ES_NOHIDESEL|WS_CHILD|WS_VISIBLE,rect,m_pWnd,FIFTH(nIndex));
m_Fifth.SetWindowText("0");
}
//显示或隐藏鹤位
//如果bDisplay为True则显示,否则隐藏
void CPickerMonitor::ShowPickerMonitor(BOOL bDisplay)
{
if(bDisplay) //显示
{
m_PickerID.ShowWindow(SW_SHOW);
m_TotalOIl.ShowWindow(SW_SHOW);
m_TurnOil.ShowWindow(SW_SHOW);
m_Temp.ShowWindow(SW_SHOW);
m_Set.ShowWindow(SW_SHOW);
m_Send.ShowWindow(SW_SHOW);
m_Progress.ShowWindow(SW_SHOW);
m_Current.ShowWindow(SW_SHOW);
m_Second.ShowWindow(SW_SHOW);
m_Third.ShowWindow(SW_SHOW);
m_Forth.ShowWindow(SW_SHOW);
m_Fifth.ShowWindow(SW_SHOW);
}
else //隐藏
{
m_PickerID.ShowWindow(SW_HIDE);
m_TotalOIl.ShowWindow(SW_HIDE);
m_TurnOil.ShowWindow(SW_HIDE);
m_Temp.ShowWindow(SW_HIDE);
m_Set.ShowWindow(SW_HIDE);
m_Send.ShowWindow(SW_HIDE);
m_Progress.ShowWindow(SW_HIDE);
m_Current.ShowWindow(SW_HIDE);
m_Second.ShowWindow(SW_HIDE);
m_Third.ShowWindow(SW_HIDE);
m_Forth.ShowWindow(SW_HIDE);
m_Fifth.ShowWindow(SW_HIDE);
}
}
//增加发油量
//nIndex为设置鹤位序号,为本身序号
//lValue为设置量
BOOL CPickerMonitor::AddSendOil(int nIndex,long int lValue)
{
//参数合法性检查
ASSERT(nIndex==m_nIndex);
if(lValue<0)
return false;
//褐位不可用,则返回失败
if(m_bValid==false)
return false;
//发油队列满,则返回失败
if(m_nSeted==5)
return false;
//设置个数没满,且可用,则增加发油
m_nSeted++;
CString strTmp;
strTmp.Format("%d",lValue);
//HWND hWnd=::GetDlgItem((HWND)(AfxGetApp()->m_pMainWnd->GetSafeHwnd()),2101);
//::SetDlgItemText(hWnd,2101,strTmp);
switch(m_nSeted)
{
case 1:
m_Current.SetWindowText(strTmp); //当前量
m_Set.SetWindowText(strTmp); //设置量
m_Temp.SetCheck(0); //不空闲
break;
case 2:
m_Second.SetWindowText(strTmp);
break;
case 3:
m_Third.SetWindowText(strTmp);
break;
case 4:
m_Forth.SetWindowText(strTmp);
break;
case 5:
m_Fifth.SetWindowText(strTmp);
break;
}
//设置发油成功
return true;
}
//删除发油设置量
//nIndex为设置鹤位序号,为本身序号
//为要删除的发油量
BOOL CPickerMonitor::DelSendOil(int nIndex,int nSeq)
{
//参数合法性检查
ASSERT(nIndex==m_nIndex);
if(nSeq<1||nSeq>m_nSeted)
return false;
//把后面设置量向前移
for(int i=nSeq;i<m_nSeted;i++)
{
TCHAR strTmp[200];
HWND hWnd=::GetDlgItem((HWND)(AfxGetApp()->m_pMainWnd->GetSafeHwnd()),2000+nIndex*100+nSeq+1);
GetWindowText(hWnd,strTmp,200);
hWnd=::GetDlgItem((HWND)(AfxGetApp()->m_pMainWnd->GetSafeHwnd()),2000+nIndex*100+nSeq);
SetWindowText(hWnd,strTmp);
}
//清空最后量
HWND hWnd=::GetDlgItem((HWND)(AfxGetApp()->m_pMainWnd->GetSafeHwnd()),2000+nIndex*100+m_nSeted);
SetWindowText(hWnd,"0");
//设置量减1
m_nSeted--;
//删除成功
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -