You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
TwoLaserHead-PushJig/LaiPuLaser/DlgWorkTime.cpp

105 lines
2.1 KiB
C++

#include "stdafx.h"
#include "DlgWorkTime.h"
#include "afxdialogex.h"
#include "GlobalFunction.h"
#include "LogMgr.h"
#include "CStringFuc.h"
#include "LaserDeviceMgr.h"
#define WORK_TIMER 1
#define WORK_TIME_DELAY 500
IMPLEMENT_DYNAMIC(CDlgWorkTime, CDialogEx)
BEGIN_MESSAGE_MAP(CDlgWorkTime, CDialogEx)
ON_WM_TIMER()
ON_BN_CLICKED(IDC_GET_LASER_STATE, &CDlgWorkTime::OnBnClickedGetLaserState)
END_MESSAGE_MAP()
CDlgWorkTime::CDlgWorkTime(CWnd* pParent /*=NULL*/)
: m_LaserState(_T(""))
{
}
CDlgWorkTime::~CDlgWorkTime()
{
}
void CDlgWorkTime::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_SHOW_TIME, m_CurTime);
DDX_Text(pDX, IDC_LASER_STATE, m_LaserState);
}
// CDlgStdMarkCtr 消息处理程序
BOOL CDlgWorkTime::OnInitDialog()
{
CDialogEx::OnInitDialog();
m_CurTime = "00:00:00";
UpdateData(FALSE);
return TRUE;
}
//开始计时
void CDlgWorkTime::StartRecordTime()
{
//记录开始时间
CTime CurTime;
m_StartTime=CTime::GetCurrentTime();
SetTimer(WORK_TIMER,WORK_TIME_DELAY,NULL);
}
//结束计时
void CDlgWorkTime::StopRecordTime()
{
KillTimer(WORK_TIMER);
}
//更新当前的工作时间
void CDlgWorkTime::UpdateTime()
{
//获取当前系统时间
CTime CurTime;
CTimeSpan TimeSpan;//时间差
CurTime=CTime::GetCurrentTime();
TimeSpan = CurTime - m_StartTime;
m_CurTime = Time2Str(TimeSpan.GetHours())+":"+Time2Str(TimeSpan.GetMinutes())+":"+Time2Str(TimeSpan.GetSeconds());
}
void CDlgWorkTime::OnTimer(UINT nIDEvent)
{
if(nIDEvent == WORK_TIMER)
{
UpdateTime();
UpdateData(FALSE);
}
CDialog::OnTimer(nIDEvent);
}
CString CDlgWorkTime::GetTime(int seconds)
{
int mins = seconds/60;
CString StrMin;
if(mins<10)
StrMin = "0"+Int2CString(mins);
else
StrMin = Int2CString(mins);
int Secs = seconds%60;
CString StrSec;
if(Secs<10)
StrSec = "0"+Int2CString(Secs);
else
StrSec = Int2CString(Secs);
CString str = "00:"+StrMin+":"+StrSec;
return str;
}
void CDlgWorkTime::OnBnClickedGetLaserState()
{
UpdateData(FALSE);
}