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

📄 pickermonitor.cpp

📁 本人工作中的一个软件开发实例。里面包含了数据库
💻 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 + -