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

📄 settimearea.c.bak

📁 这是嵌入式软件电话本的小软件
💻 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 + -