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

📄 settimearea.c

📁 S3C44B0X全套培训资料及源代码,ARM 并行口仿真器的使用.
💻 C
字号:
#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	2PTextCtrl 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 + -