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

📄 timesettingdlg.cpp

📁 EVC环境下用SDK开发WINCE的应用程序
💻 CPP
字号:
// TimeSettingDlg.cpp: implementation of the CTimeSettingDlg class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "TimeSettingDlg.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

BEGIN_MESSAGE_MAP(CTimeSettingDlg, CSettingDlg)
	ON_BN_CLICKED(IDC_TS_HOUR_UP, OnHourUp)
	ON_BN_CLICKED(IDC_TS_HOUR_DOWN, OnHourDown)
	ON_BN_CLICKED(IDC_TS_MIN_UP, OnMinUp)
	ON_BN_CLICKED(IDC_TS_MIN_DOWN, OnMinDown)
	ON_BN_CLICKED(IDC_TS_SEC_UP, OnSecUp)
	ON_BN_CLICKED(IDC_TS_SEC_DOWN, OnSecDown)
END_MESSAGE_MAP()

CTimeSettingDlg::CTimeSettingDlg(CNWnd* pParent, UINT uID)
	:CSettingDlg(pParent, uID)
	,m_bModified(FALSE)
{

}

CTimeSettingDlg::~CTimeSettingDlg()
{

}

BOOL CTimeSettingDlg::OnInitDialog()
{
	CSettingDlg::OnInitDialog();
	SetCaption(_T("Time adjust"));

	// subclassing dialog item
	m_btnHourUp.SubclassDlgItem(IDC_TS_HOUR_UP,this);
	m_btnHourUp.SetIcon(IDI_TS_HOUR_UP);

	m_btnHourDown.SubclassDlgItem(IDC_TS_HOUR_DOWN,this);
	m_btnHourDown.SetIcon(IDI_TS_HOUR_DOWN);

	m_btnMinUp.SubclassDlgItem(IDC_TS_MIN_UP,this);
	m_btnMinUp.SetIcon(IDI_TS_HOUR_UP);

	m_btnMinDown.SubclassDlgItem(IDC_TS_MIN_DOWN,this);
	m_btnMinDown.SetIcon(IDI_TS_HOUR_DOWN);

	m_btnSecUp.SubclassDlgItem(IDC_TS_SEC_UP,this);
	m_btnSecUp.SetIcon(IDI_TS_HOUR_UP);

	m_btnSecDown.SubclassDlgItem(IDC_TS_SEC_DOWN,this);
	m_btnSecDown.SetIcon(IDI_TS_HOUR_DOWN);

	const HFONT font = NavGetFont(18);
	const COLORREF cr = RGB(255,255,255);
	
	m_stcHour.SubclassDlgItem(IDC_TS_HOUR, this);
	m_stcHour.SetFont(font,FALSE);
	m_stcHour.SetTextColor(cr);

	m_stcMin.SubclassDlgItem(IDC_TS_MIN, this);
	m_stcMin.SetFont(font,FALSE);
	m_stcMin.SetTextColor(cr);

	m_stcSec.SubclassDlgItem(IDC_TS_SEC, this);
	m_stcSec.SetFont(font,FALSE);
	m_stcSec.SetTextColor(cr);

	m_stcSeparator1.SubclassDlgItem(IDC_TS_SEPARATOR1, this);
	m_stcSeparator1.SetFont(font,FALSE);
	m_stcSeparator1.SetTextColor(cr);
	
	m_stcSeparator2.SubclassDlgItem(IDC_TS_SEPARATOR2, this);
	m_stcSeparator2.SetFont(font,FALSE);
	m_stcSeparator2.SetTextColor(cr);

	// set a timer to refresh local time every 1 seconds.
	SetTimer(ID_TIMER_TIME, 1000, NULL);
	SendMessage(WM_TIMER, (WPARAM)ID_TIMER_TIME, 0);

	return TRUE;
}

void CTimeSettingDlg::OnHourUp()
{
	ModifyTime(1, 0, 0);
}
void CTimeSettingDlg::OnHourDown()
{
	ModifyTime(-1, 0, 0);
}
void CTimeSettingDlg::OnMinUp()
{
	ModifyTime(0, 1, 0);
}

void CTimeSettingDlg::OnMinDown()
{
	ModifyTime(0, -1, 0);
}

void CTimeSettingDlg::OnSecUp()
{
	ModifyTime(0, 0, 1);
}

void CTimeSettingDlg::OnSecDown()
{
	ModifyTime(0, 0, -1);
}


void CTimeSettingDlg::OnTimer(UINT nIDEvent)
{
	CNString str;
	SYSTEMTIME time;
	
	if( nIDEvent == ID_TIMER_TIME && !m_bModified )
	{
		GetLocalTime( &time );
		TimeToStr(time.wSecond, str);
		m_stcSec.SetWindowText(str);

		TimeToStr(time.wMinute, str);
		m_stcMin.SetWindowText(str);

		TimeToStr(time.wHour, str);
		m_stcHour.SetWindowText(str);

		
		InvalidateRect(NULL);
		UpdateWindow();
	}

	CSettingDlg::OnTimer(nIDEvent);
}

void CTimeSettingDlg::OnClose()
{
	KillTimer(ID_TIMER_TIME);
	CSettingDlg::OnClose();
}

void CTimeSettingDlg::ModifyTime(int hr, int min, int sec)
{
	m_stcHour;
	m_stcMin;
	m_stcSec;
	m_bModified = TRUE;

	CNString str;
	int t;

	// hour
	m_stcHour.GetWindowText(str);
	t = _ttoi(str) + hr + 24;
	t %= 24;
	TimeToStr(t, str);
	m_stcHour.SetWindowText(str);

	// minute
	m_stcMin.GetWindowText(str);
	t = _ttoi(str) + min + 60;
	t %= 60;
	TimeToStr(t, str);
	m_stcMin.SetWindowText(str);
	
	// second
	m_stcSec.GetWindowText(str);
	t = _ttoi(str) + sec + 60;
	t %= 60;
	TimeToStr(t, str);
	m_stcSec.SetWindowText(str);

	InvalidateRect(NULL);
}

void CTimeSettingDlg::TimeToStr(int t, CNString& str)
{
	if(t<10)
		str.Format(_T("0%d"), t);
	else
		str.Format(_T("%d"), t);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -