#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); }