📄 timesettingdlg.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 + -