📄 set_xxxdlg.cpp
字号:
GetTimeStr(m_CurTime,m_TargetDate,&m_TimeStr,m_b12hour);
DrawAreaItem(&dc,mask);
}
void CSet_xxxDlg::DrawAreaItem(CDC* pDC,UINT mask)
{
PBTN_ITEM pTemp = m_TimeAreas;
UINT bit;
pDC->SetTextColor(RGB(255,255,255));
pDC->SelectObject(&m_fArea);
pDC->SetBkMode(TRANSPARENT);
for(UINT i=0;i<AREA_TAL_NUM;i++)
{
bit = 0x01<<(pTemp->iIndex-1);
if(mask&bit)
{
DrawJpg(pDC,(UINT)m_AreaSel==pTemp->iIndex?pTemp->iImage2:pTemp->iImage1,pTemp->pRect);
DrawTimeText(pDC, (AREA_SEL)pTemp->iIndex, (PRECT)pTemp->pRect);
}
pTemp++;
}
return;
}
void CSet_xxxDlg::DrawTimeAreas(CDC* pDC)
{
PBTN_ITEM pTemp = m_TimeAreas;
pDC->SetTextColor(RGB(255,255,255));
pDC->SelectObject(&m_fArea);
pDC->SetBkMode(TRANSPARENT);
for(UINT i=0;i<AREA_TAL_NUM;i++)
{
DrawJpg(pDC,(UINT)m_AreaSel==pTemp->iIndex?pTemp->iImage2:pTemp->iImage1,pTemp->pRect);
DrawTimeText(pDC, (AREA_SEL)pTemp->iIndex, (PRECT)pTemp->pRect);
pTemp++;
}
return;
}
void CSet_xxxDlg::DrawTimeText(CDC* pDC,AREA_SEL sel,PRECT pRect)
{
switch(sel) {
case AREA_YEAR:
DrawText(pDC->GetSafeHdc(), m_TimeStr.year, -1, pRect, DT_SINGLELINE|DT_VCENTER|DT_CENTER );
break;
case AREA_MON:
DrawText(pDC->GetSafeHdc(), m_TimeStr.mon, -1, pRect, DT_SINGLELINE|DT_VCENTER|DT_CENTER );
break;
case AREA_DATE:
DrawText(pDC->GetSafeHdc(), m_TimeStr.date, -1, pRect, DT_SINGLELINE|DT_VCENTER|DT_CENTER );
break;
case AREA_HOUR:
DrawText(pDC->GetSafeHdc(), m_TimeStr.hour, -1, pRect, DT_SINGLELINE|DT_VCENTER|DT_CENTER );
break;
case AREA_MIN:
DrawText(pDC->GetSafeHdc(), m_TimeStr.min, -1, pRect, DT_SINGLELINE|DT_VCENTER|DT_CENTER );
break;
case AREA_SEC:
DrawText(pDC->GetSafeHdc(), m_TimeStr.sec, -1, pRect, DT_SINGLELINE|DT_VCENTER|DT_CENTER );
break;
case AREA_ZONE:
{
RECT rect;
SetRect(&rect,pRect->left+5,pRect->top,pRect->right-5,pRect->bottom);
DrawText(pDC->GetSafeHdc(), m_TimeStr.zone, -1, &rect, DT_SINGLELINE|DT_VCENTER|DT_LEFT );
}
break;
default:
break;
}
}
void CSet_xxxDlg::BtnCommandUp(UINT btn_index)
{
switch(btn_index) {
case BTN1_CLOSE:
SetDateTime(m_CurTime,m_TargetDate);
SetTimeZone(&m_ZoneInf);
OnCancel();
break;
case BTN1_TIME_DN:
SetTimeUp(FALSE);
break;
case BTN1_TIME_UP:
SetTimeUp(TRUE);
break;
case BTN1_DATE_DN:
SetDateUp(FALSE);
break;
case BTN1_DATE_UP:
SetDateUp(TRUE);
break;
case BTN1_ZONE_DN:
SetZoneUp(FALSE);
break;
case BTN1_ZONE_UP:
SetZoneUp(TRUE);
break;
default:
break;
}
}
void CSet_xxxDlg::BtnCommandDown(UINT btn_index)
{
switch(btn_index) {
case BTN1_12_24:
{
m_b12hour = !m_b12hour;
Set12HourMode(m_b12hour);
GetTimeStr(m_CurTime,m_TargetDate,&m_TimeStr,m_b12hour);
InvalidateRect(&rAreaHour);
}
break;
case BTN1_DATE_DN:
case BTN1_DATE_UP:
case BTN1_TIME_DN:
case BTN1_TIME_UP:
case BTN1_ZONE_DN:
case BTN1_ZONE_UP:
SetTimer(TIMER_LONGPUSH_CON,LONG_WAIT_TIME,NULL);
break;
case BTN1_DL1_SEL:
case BTN1_DL2_SEL:
{
if(m_ZoneInf.bDl_Mask&BIT_DL_EN)
{
if(m_ZoneInf.bDl_Mask&BIT_DL_ON)
m_ZoneInf.bDl_Mask&=(~BIT_DL_ON);
else
m_ZoneInf.bDl_Mask|=BIT_DL_ON;
InvalidateRect(&rBtnDl1,FALSE);
}
}
default:
break;
}
}
void CSet_xxxDlg::BtnLongPushCommand(UINT btn_index)
{
switch(btn_index) {
case BTN1_TIME_DN:
SetTimeUp(FALSE);
break;
case BTN1_TIME_UP:
SetTimeUp(TRUE);
break;
case BTN1_DATE_DN:
SetDateUp(FALSE);
break;
case BTN1_DATE_UP:
SetDateUp(TRUE);
break;
case BTN1_ZONE_DN:
SetZoneUp(FALSE);
break;
case BTN1_ZONE_UP:
SetZoneUp(TRUE);
break;
default:
break;
}
}
void CSet_xxxDlg::SetTimeUp(BOOL bUp)
{
if(m_AreaSel==AREA_SEC)
{
KillTimer(TIMER_FRESH_TIME);
if(bUp)
{
if(m_CurTime.wSecond<59)
m_CurTime.wSecond++;
else
m_CurTime.wSecond=0;
}
else
{
if(m_CurTime.wSecond>0)
m_CurTime.wSecond--;
else
m_CurTime.wSecond=59;
}
FreshTimeArea(BIT_SEC);
}
else if(m_AreaSel==AREA_MIN)
{
KillTimer(TIMER_FRESH_TIME);
if(bUp)
{
if(m_CurTime.wMinute<59)
m_CurTime.wMinute++;
else
m_CurTime.wMinute=0;
}
else
{
if(m_CurTime.wMinute>0)
m_CurTime.wMinute--;
else
m_CurTime.wMinute=59;
}
FreshTimeArea(BIT_MIN);
}
else if(m_AreaSel==AREA_HOUR)
{
KillTimer(TIMER_FRESH_TIME);
if(bUp)
{
if(m_CurTime.wHour<23)
m_CurTime.wHour++;
else
m_CurTime.wHour=0;
}
else
{
if(m_CurTime.wHour>0)
m_CurTime.wHour--;
else
m_CurTime.wHour=23;
}
FreshTimeArea(BIT_HOUR);
}
}
void CSet_xxxDlg::SetDateUp(BOOL bUp)
{
UINT mask=0;
if(m_AreaSel==AREA_YEAR)
{
if(bUp)
{
if(m_TargetDate.wYear<2050)
m_TargetDate.wYear++;
}
else
{
if(m_TargetDate.wYear>1950)
m_TargetDate.wYear--;
}
mask|=BIT_YEAR;
}
else if(m_AreaSel==AREA_MON)
{
if(bUp)
{
if(m_TargetDate.wMonth<12)
m_TargetDate.wMonth++;
else
m_TargetDate.wMonth = 1;
}
else
{
if(m_TargetDate.wMonth>1)
m_TargetDate.wMonth--;
else
m_TargetDate.wMonth = 12;
}
mask|=BIT_MON;
}
else if(m_AreaSel==AREA_DATE)
{
if(bUp)
{
if(m_TargetDate.wDay<31)
m_TargetDate.wDay++;
else
m_TargetDate.wDay = 1;
}
else
{
if(m_TargetDate.wDay>1)
m_TargetDate.wDay--;
else
m_TargetDate.wDay = 31;
}
mask|=BIT_DATE;
}
CalcRightTime(m_TargetDate,bUp,mask);
FreshTimeArea(mask);
}
void CSet_xxxDlg::SetZoneUp(BOOL bUp)
{
BOOL bFresh=FALSE;
UINT FreshMask=BIT_ZONE;
UINT dl = m_ZoneInf.bDl_Mask;
if(m_AreaSel==AREA_ZONE)
{
if(bUp)
{
if(m_ZoneInf.dwCurZon<m_ZoneInf.dwZoneNum-1)
{
m_ZoneInf.dwCurZon++;
bFresh = TRUE;
}
}
else
{
if(m_ZoneInf.dwCurZon>0)
{
m_ZoneInf.dwCurZon--;
bFresh = TRUE;
}
}
if(bFresh)
{
#if KEEP_UTC_TIME
KillTimer(TIMER_FRESH_TIME);
#endif
FreshMask|=GetTagetZone(&m_ZoneInf,m_TimeStr.zone,&m_CurTime);
FreshTimeArea(FreshMask);
if(dl!=m_ZoneInf.bDl_Mask)
{
FreshDlArea();
}
}
}
}
void CSet_xxxDlg::FreshDlArea()
{
CWindowDC dc(this);
DrawJpg(&dc,(m_ZoneInf.bDl_Mask&BIT_DL_ON)?((m_ZoneInf.bDl_Mask&BIT_DL_EN)?\
IDR_BTN1_DL1_EN:IDR_BTN1_DL1_DIS):(IDR_BTN1_DL1_OFF),&rBtnDl1);
DrawJpg(&dc,(m_ZoneInf.bDl_Mask&BIT_DL_EN)?IDR_BTN1_DL2_EN:IDR_BTN1_DL2_DIS,&rBtnDl2);
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -