📄 analogclockdlg.cpp
字号:
// AnalogClockDlg.cpp : implementation file
//
#include "stdafx.h"
#include "AnalogClock.h"
#include "AnalogClockDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAnalogClockDlg dialog
CAnalogClockDlg::CAnalogClockDlg(CWnd* pParent /*=NULL*/)
: CDialog(CAnalogClockDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CAnalogClockDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
check_select = 0;
Adjust_Flag = TRUE;
}
void CAnalogClockDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAnalogClockDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
DDX_Control(pDX,IDC_STATIC_CLOCK,m_Clock);
DDX_Control(pDX,IDC_EDIT1,m_Edit);
DDX_Text(pDX,IDC_EDIT1,m_String);
DDX_Control(pDX,IDC_ADJUST,m_BtnAdjust);
DDX_Control(pDX,IDC_ADD,m_BtnAdd);
DDX_Control(pDX,IDC_DEC,m_BtnDec);
DDX_Control(pDX,IDC_RADIOSECOND,m_RadioSecond);
DDX_Control(pDX,IDC_RADIOMINUTE,m_RadioMinute);
DDX_Control(pDX,IDC_RADIOHOUR,m_RadioHour);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAnalogClockDlg, CDialog)
//{{AFX_MSG_MAP(CAnalogClockDlg)
ON_BN_CLICKED(IDC_ADD, OnAdd)
ON_BN_CLICKED(IDC_DEC, OnDec)
ON_BN_CLICKED(IDC_RADIOSECOND, OnRadiosecond)
ON_BN_CLICKED(IDC_RADIOMINUTE, OnRadiominute)
ON_BN_CLICKED(IDC_RADIOHOUR, OnRadiohour)
ON_BN_CLICKED(IDC_ADJUST, OnAdjust)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAnalogClockDlg message handlers
BOOL CAnalogClockDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
CenterWindow(GetDesktopWindow()); // center to the hpc screen
// TODO: Add extra initialization here
m_RadioSecond.SetCheck(BST_CHECKED);
ShowWindows(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
}
void CAnalogClockDlg::OnAdd()
{
// TODO: Add your control notification handler code here
switch(check_select)
{
case 0:
Ajust_Time.wSecond >= 59 ? Ajust_Time.wSecond = 0 : Ajust_Time.wSecond++;
break;
case 1:
Ajust_Time.wMinute >= 59 ? Ajust_Time.wMinute = 0 : Ajust_Time.wMinute++;
break;
case 2:
Ajust_Time.wHour >= 23 ? Ajust_Time.wHour = 0 : Ajust_Time.wHour++;
break;
}
if (Ajust_Time.wHour >11)
{
m_Clock.m_Hour = Ajust_Time.wHour - 12;
m_Clock.DayOrAfter = FALSE;
}
else
{
m_Clock.m_Hour = Ajust_Time.wHour;
m_Clock.DayOrAfter = TRUE;
}
m_Clock.m_Minute = Ajust_Time.wMinute;
m_Clock.m_Second = Ajust_Time.wSecond;
m_String.Format(_T("%d"),Ajust_Time.wHour);
UpdateData(FALSE);
m_Clock.Invalidate();
}
void CAnalogClockDlg::OnDec()
{
// TODO: Add your control notification handler code here
switch(check_select)
{
case 0:
Ajust_Time.wSecond <= 0 ? Ajust_Time.wSecond = 59 : Ajust_Time.wSecond--;
break;
case 1:
Ajust_Time.wMinute <= 0 ? Ajust_Time.wMinute = 59 : Ajust_Time.wMinute--;
break;
case 2:
Ajust_Time.wHour <= 0 ? Ajust_Time.wHour = 23 : Ajust_Time.wHour--;
break;
}
if (Ajust_Time.wHour >11)
{
m_Clock.m_Hour = Ajust_Time.wHour - 12;
m_Clock.DayOrAfter = FALSE;
}
else
{
m_Clock.m_Hour = Ajust_Time.wHour;
m_Clock.DayOrAfter = TRUE;
}
m_Clock.m_Minute = Ajust_Time.wMinute;
m_Clock.m_Second = Ajust_Time.wSecond;
m_String.Format(_T("%d"),Ajust_Time.wHour);
UpdateData(FALSE);
m_Clock.Invalidate();
}
void CAnalogClockDlg::OnRadiosecond()
{
// TODO: Add your control notification handler code here
check_select=0;
}
void CAnalogClockDlg::OnRadiominute()
{
// TODO: Add your control notification handler code here
check_select=1;
}
void CAnalogClockDlg::OnRadiohour()
{
// TODO: Add your control notification handler code here
check_select=2;
}
void CAnalogClockDlg::OnAdjust()
{
// TODO: Add your control notification handler code here
if (Adjust_Flag)
{
Adjust_Flag = FALSE;
m_Clock.KillTimer(1000);
GetLocalTime(&Ajust_Time);
ShowWindows(TRUE);
m_BtnAdjust.SetWindowText(_T("OK"));
}
else
{
Adjust_Flag = TRUE;
m_Clock.SetTimer(1000,200,NULL);
SetLocalTime(&Ajust_Time);
ShowWindows(FALSE);
m_BtnAdjust.SetWindowText(_T("ADJUST"));
}
}
void CAnalogClockDlg::ShowWindows(BOOL bShow)
{
int nCmdShow;
bShow != 0 ? nCmdShow = SW_SHOW : nCmdShow = SW_HIDE;
m_BtnAdd.ShowWindow(nCmdShow);
m_BtnDec.ShowWindow(nCmdShow);
m_RadioHour.ShowWindow(nCmdShow);
m_RadioMinute.ShowWindow(nCmdShow);
m_RadioSecond.ShowWindow(nCmdShow);
if(!nCmdShow) m_BtnAdjust.SetWindowText(L"Adjust");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -