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.
105 lines
2.1 KiB
C++
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);
|
|
}
|