📄 settimearea.c.bak
字号:
#include "..\inc\drv\Rtc.h"
#include "..\inc\drv\Display.h"
#include "..\ucos-ii\add\control.h"
#include "..\inc\resource.h"
#include "..\inc\SetTimeArea.h"
#define STStatus_SetSelect 0
#define STStatus_SetTime 1
#define STStatus_SetDate 2
PTextCtrl pDateTextCtrl;
PTextCtrl pTimeTextCtrl;
U32 SetTimeStatus;
extern U32 mainstatus;
extern PTextCtrl pStatusTextCtrl;
void CreateSetTimeArea(U8 IsShow)
{
static char TimeKeyTable[]={'1','2','3',0,'4','5','6',0,'7','8','9',0,':','0','\b',0};
U16 strtime[11]={0,};
structRECT rect;
// structTime time;
SetRect(&rect, 150,20,250,40); //创建日期文本框
pDateTextCtrl=CreateTextCtrl(ID_SetDate_TextCtrl, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_FRAME,NULL,NULL);
Rtc_Format("20%Y.%M.%D",strtime);
SetTextCtrlText(pDateTextCtrl, strtime,IsShow);
SetRect(&rect, 150,50,250,70); //创建日期文本框
pTimeTextCtrl=CreateTextCtrl(ID_SetTime_TextCtrl, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_FRAME,TimeKeyTable,NULL);
Rtc_Format("%H:%I:%S",strtime);
SetTextCtrlText(pTimeTextCtrl, strtime,IsShow);
SetTimeStatus=STStatus_SetSelect;
}
void DestorySetTimeArea()
{
PDC pdc;
pdc=CreateDC();
DestoryTextCtrl(pDateTextCtrl);
DestoryTextCtrl(pTimeTextCtrl);
FillRect(pdc, 150, 20, 319, 150, GRAPH_MODE_NORMAL, COLOR_WHITE);
ReDrawOSCtrl();
DestoryDC(pdc);
}
void SetTimeSetFocus()
{
SetWndCtrlFocus(NULL, ID_SetDate_TextCtrl);
}
void SetTimeUp()
{
switch(SetTimeStatus){
case STStatus_SetSelect:
if(GetWndCtrlFocus(NULL)==ID_SetTime_TextCtrl){
SetWndCtrlFocus(NULL, ID_SetDate_TextCtrl);
DrawTextCtrl(pTimeTextCtrl);
DrawTextCtrl(pDateTextCtrl);
}
break;
}
}
void SetTimeDown()
{
switch(SetTimeStatus){
case STStatus_SetSelect:
if(GetWndCtrlFocus(NULL)==ID_SetDate_TextCtrl){
SetWndCtrlFocus(NULL, ID_SetTime_TextCtrl);
DrawTextCtrl(pTimeTextCtrl);
DrawTextCtrl(pDateTextCtrl);
}
break;
}
}
void SetFormatTime() //设定格式化以后的时间
{
U16* ptext=pTimeTextCtrl->text;
U32 tmp[3],i;
structClock clock;
for(i=0;i<3;i++){
tmp[i]=0;
while(*ptext && *ptext !=':'){
tmp[i]<<=4;
tmp[i]|=(*ptext)-'0';
ptext++;
}
ptext++;
}
clock.hour=tmp[0];
clock.minute=tmp[1];
clock.second=tmp[2];
Set_Rtc_Clock(&clock);
SetTextCtrlEdit(pTimeTextCtrl, FALSE);
DrawTextCtrl(pTimeTextCtrl);
SetTimeStatus=STStatus_SetSelect;
}
void SetFormatDate() //设定格式化以后的日期
{
U16* ptext=pDateTextCtrl->text;
U32 tmp[3],i;
structDate date;
for(i=0;i<3;i++){
tmp[i]=0;
while(*ptext && *ptext !='.'){
tmp[i]<<=4;
tmp[i]|=(*ptext)-'0';
ptext++;
}
ptext++;
}
date.year=tmp[0]&0xff;
date.month=tmp[1];
date.day=tmp[2];
Set_Rtc_Date(&date);
SetTextCtrlEdit(pDateTextCtrl, FALSE);
DrawTextCtrl(pDateTextCtrl);
SetTimeStatus=STStatus_SetSelect;
}
void SetTimeOK()
{
switch(SetTimeStatus){
case STStatus_SetSelect:
if(GetWndCtrlFocus(NULL)==ID_SetDate_TextCtrl){
SetTimeStatus=STStatus_SetDate;
pDateTextCtrl->text[0]=0;
SetTextCtrlEdit(pDateTextCtrl, TRUE);
DrawTextCtrl(pDateTextCtrl);
}
else if(GetWndCtrlFocus(NULL)==ID_SetTime_TextCtrl){
SetTimeStatus=STStatus_SetTime;
pTimeTextCtrl->text[0]=0;
SetTextCtrlEdit(pTimeTextCtrl, TRUE);
DrawTextCtrl(pTimeTextCtrl);
}
break;
case STStatus_SetTime:
SetFormatTime(); //设定格式化以后的时间
break;
case STStatus_SetDate:
SetFormatDate(); //设定格式化以后的日期
break;
}
}
extern U16* MainTip[];
void SetTimeCancel()
{
U16 strtime[11];
switch(SetTimeStatus){
case STStatus_SetDate:
SetTextCtrlEdit(pDateTextCtrl, FALSE);
Rtc_Format("20%Y.%M.%D",strtime);
SetTextCtrlText(pDateTextCtrl, strtime,TRUE);
SetTimeStatus=STStatus_SetSelect;
break;
case STStatus_SetTime:
SetTextCtrlEdit(pTimeTextCtrl, FALSE);
Rtc_Format("%H:%I:%S",strtime);
SetTextCtrlText(pTimeTextCtrl, strtime,TRUE);
SetTimeStatus=STStatus_SetSelect;
break;
case STStatus_SetSelect:
DestorySetTimeArea();
mainstatus=MAIN_MENU;
SetTextCtrlText(pStatusTextCtrl, MainTip[0],TRUE);
SetWndCtrlFocus(NULL, ID_MainListBox);
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -