📄 settimearea.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"
#include "..\inc\drv\File.h"
#include "..\inc\OSFile.h"
#define STStatus_SetSelect 0
#define STStatus_SetName 1
#define STStatus_SetRela 2
#define STStatus_SetMobil 3
#define STStatus_SetHome 4
#define STStatus_SetOffice 5
extern PTextCtrl pTextCtrl1;
extern PTextCtrl pTextCtrl2;
extern PTextCtrl pTextCtrl3;
extern PTextCtrl pTextCtrl4;
extern PTextCtrl pTextCtrl5;
extern PListCtrl pMainListCtrl;
U32 SetTelephoneStatus;
extern U32 mainstatus;
U16 ch1[]={0x59D3,0x540D,0x00};
U16 ch2[]={0x5173,0x7CFB,0x00};
U16 ch3[]={0x624B,0x673A,0x00};
U16 ch4[]={0x5BB6,0x5EAD,0x7535,0x8BDD,0x00};
U16 ch5[]={0x529E,0x516C,0x7535,0x8BDD,0x00};
extern char TextFilename[];
extern struct people{
char name[20];
char relation[20];
char mobil[20];
char home[20];
char office[20];
};
extern struct people p[500];
void loadfile()
{ int i;
FILE *pfile;
pfile=OpenOSFile(TextFilename,FILEMODE_READ);
if(pfile==NULL){
LCD_printf("Can't Open file!\n");
for(;;)
OSTimeDly(1000);
}
//for(i=0;i<500;i++){
ReadOSFile(pfile,(U8*)&p[i],sizeof(p));
//}
CloseOSFile(pfile);
}
void Savefile(){
FILE *pfile;
int i;
pfile=OpenOSFile(TextFilename,FILEMODE_WRITE);
if(pfile==NULL){
LCD_printf("Can't Open file!\n");
for(;;)
OSTimeDly(1000);
}
//for(i=0;i<500;i++){
WriteOSFile(pfile,(U8*)&p[i],500*sizeof(p));
//}
CloseOSFile(pfile);
}
void CreateSetTelephoneArea(U8 IsShow)
{ static char TimeKeyTable[]={'1','2','3',0,'4','5','6',0,'7','8','9',0,':','0','\b',0};
int i;
char name[20];
char relation[20];
char mobil[20];
char home[20];
char office[20];
U16 Name[14][20];
U16 Relation[14][20];
U16 Mobil[14][20];
U16 Home[14][20];
U16 Office[14][20];
//U16 strtime[11]={0,};
structRECT rect;
PDC pdc;
ClearScreen();
pdc=CreateDC();
TextOut(pdc,135,50,ch1,TRUE,FONTSIZE_SMALL);
TextOut(pdc, 135, 75, ch2, TRUE, FONTSIZE_SMALL);
TextOut(pdc, 135, 100, ch3, TRUE, FONTSIZE_SMALL);
TextOut(pdc, 135, 125, ch4, TRUE, FONTSIZE_SMALL);
TextOut(pdc, 135, 150, ch5, TRUE, FONTSIZE_SMALL);
SetRect(&rect,185,45,318,65); //创建姓名文本框
pTextCtrl1=CreateTextCtrl(ID_SetName_TextCtrl, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_3DDOWNFRAME,NULL,NULL);
SetRect(&rect,185,70,318,90);//创建关系文本框
pTextCtrl2=CreateTextCtrl(ID_SetRela_TextCtrl, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_3DDOWNFRAME,NULL,NULL);
SetRect(&rect,185,95,318,115);//创建手机文本框
pTextCtrl3=CreateTextCtrl(ID_SetMobil_TextCtrl, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_3DDOWNFRAME,NULL,NULL);
SetRect(&rect,185,120,318,140);//创建家庭电话文本框
pTextCtrl4=CreateTextCtrl(ID_SetHome_TextCtrl, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_3DDOWNFRAME,NULL,NULL);
SetRect(&rect,185,145,318,165);//创建办公电话文本框
pTextCtrl5=CreateTextCtrl(ID_SetOffice_TextCtrl, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_3DDOWNFRAME,NULL,NULL);
loadfile();
for(i=0;i<15;i++){
strcpy(name,p[i].name);
strChar2Unicode(Name[i],name);
strcpy(relation,p[i].relation);
strChar2Unicode(Relation[i],relation);
strcpy(mobil,p[i].mobil);
strChar2Unicode(Mobil[i],mobil);
strcpy(home,p[i].home);
strChar2Unicode(Home[i],home);
strcpy(office,p[i].office);
strChar2Unicode(Office[i],office);
}
SetTextCtrlText(pTextCtrl1, Name[pMainListCtrl->CurrentSel],TRUE);
SetTextCtrlText(pTextCtrl2, Relation[pMainListCtrl->CurrentSel],TRUE);
SetTextCtrlText(pTextCtrl3, Mobil[pMainListCtrl->CurrentSel],TRUE);
SetTextCtrlText(pTextCtrl4, Home[pMainListCtrl->CurrentSel],TRUE);
SetTextCtrlText(pTextCtrl5, Office[pMainListCtrl->CurrentSel],TRUE);
ReDrawOSCtrl();
SetTelephoneStatus=STStatus_SetSelect;
DestoryDC(pdc);
}
void DestorySetTelephoneArea()
{
PDC pdc;
pdc=CreateDC();
DestoryTextCtrl(pTextCtrl1);
DestoryTextCtrl(pTextCtrl2);
DestoryTextCtrl(pTextCtrl3);
DestoryTextCtrl(pTextCtrl4);
DestoryTextCtrl(pTextCtrl5);
FillRect(pdc, 134, 40, 319,200, GRAPH_MODE_NORMAL, COLOR_WHITE);
ReDrawOSCtrl();
DestoryDC(pdc);
}
void SetTelephoneSetFocus()
{
SetWndCtrlFocus(NULL, ID_SetName_TextCtrl);
}
void SetTelephoneUp()
{
switch(SetTelephoneStatus){
case STStatus_SetSelect:
if(GetWndCtrlFocus(NULL)==ID_SetOffice_TextCtrl){
SetWndCtrlFocus(NULL, ID_SetHome_TextCtrl);
DrawTextCtrl(pTextCtrl5);
DrawTextCtrl(pTextCtrl4);
DrawTextCtrl(pTextCtrl3);
DrawTextCtrl(pTextCtrl2);
DrawTextCtrl(pTextCtrl1);}
else if(GetWndCtrlFocus(NULL)==ID_SetHome_TextCtrl){
SetWndCtrlFocus(NULL, ID_SetMobil_TextCtrl);
DrawTextCtrl(pTextCtrl5);
DrawTextCtrl(pTextCtrl4);
DrawTextCtrl(pTextCtrl3);
DrawTextCtrl(pTextCtrl2);
DrawTextCtrl(pTextCtrl1);}
else if(GetWndCtrlFocus(NULL)==ID_SetMobil_TextCtrl){
SetWndCtrlFocus(NULL, ID_SetRela_TextCtrl);
DrawTextCtrl(pTextCtrl5);
DrawTextCtrl(pTextCtrl4);
DrawTextCtrl(pTextCtrl3);
DrawTextCtrl(pTextCtrl2);
DrawTextCtrl(pTextCtrl1);}
else if(GetWndCtrlFocus(NULL)==ID_SetRela_TextCtrl){
SetWndCtrlFocus(NULL, ID_SetName_TextCtrl);
DrawTextCtrl(pTextCtrl5);
DrawTextCtrl(pTextCtrl4);
DrawTextCtrl(pTextCtrl3);
DrawTextCtrl(pTextCtrl2);
DrawTextCtrl(pTextCtrl1);}
break;
}
}
void SetTelephoneDown()
{
switch(SetTelephoneStatus){
case STStatus_SetSelect:
if(GetWndCtrlFocus(NULL)==ID_SetName_TextCtrl){
SetWndCtrlFocus(NULL, ID_SetRela_TextCtrl);
DrawTextCtrl(pTextCtrl1);
DrawTextCtrl(pTextCtrl2);
DrawTextCtrl(pTextCtrl3);
DrawTextCtrl(pTextCtrl4);
DrawTextCtrl(pTextCtrl5);}
else if(GetWndCtrlFocus(NULL)==ID_SetRela_TextCtrl){
SetWndCtrlFocus(NULL, ID_SetMobil_TextCtrl);
DrawTextCtrl(pTextCtrl1);
DrawTextCtrl(pTextCtrl2);
DrawTextCtrl(pTextCtrl3);
DrawTextCtrl(pTextCtrl4);
DrawTextCtrl(pTextCtrl5);}
else if(GetWndCtrlFocus(NULL)==ID_SetMobil_TextCtrl){
SetWndCtrlFocus(NULL, ID_SetHome_TextCtrl);
DrawTextCtrl(pTextCtrl1);
DrawTextCtrl(pTextCtrl2);
DrawTextCtrl(pTextCtrl3);
DrawTextCtrl(pTextCtrl4);
DrawTextCtrl(pTextCtrl5);}
else if(GetWndCtrlFocus(NULL)==ID_SetHome_TextCtrl){
SetWndCtrlFocus(NULL, ID_SetOffice_TextCtrl);
DrawTextCtrl(pTextCtrl1);
DrawTextCtrl(pTextCtrl2);
DrawTextCtrl(pTextCtrl3);
DrawTextCtrl(pTextCtrl4);
DrawTextCtrl(pTextCtrl5);}
break;
}
}
void SetTelephoneOK()
{ static U8 input=FALSE;
switch(SetTelephoneStatus){
case STStatus_SetSelect:
if(GetWndCtrlFocus(NULL)==ID_SetName_TextCtrl){
SetTelephoneStatus=STStatus_SetName;
pTextCtrl1->text[0]=0;
SetTextCtrlEdit(pTextCtrl1, TRUE);
DrawTextCtrl(pTextCtrl1);
}
else if(GetWndCtrlFocus(NULL)==ID_SetRela_TextCtrl){
SetTelephoneStatus=STStatus_SetRela;
pTextCtrl2->text[0]=0;
SetTextCtrlEdit(pTextCtrl2, TRUE);
DrawTextCtrl(pTextCtrl2);
}
else if(GetWndCtrlFocus(NULL)==ID_SetMobil_TextCtrl){
SetTelephoneStatus=STStatus_SetMobil;
pTextCtrl3->text[0]=0;
SetTextCtrlEdit(pTextCtrl3, TRUE);
DrawTextCtrl(pTextCtrl3);
}
else if(GetWndCtrlFocus(NULL)==ID_SetHome_TextCtrl){
SetTelephoneStatus=STStatus_SetHome;
pTextCtrl4->text[0]=0;
SetTextCtrlEdit(pTextCtrl4, TRUE);
DrawTextCtrl(pTextCtrl4);
}
else if(GetWndCtrlFocus(NULL)==ID_SetOffice_TextCtrl){
SetTelephoneStatus=STStatus_SetOffice;
pTextCtrl5->text[0]=0;
SetTextCtrlEdit(pTextCtrl5, TRUE);
DrawTextCtrl(pTextCtrl5);
}
input=TRUE;
Savenum();
break;
case STStatus_SetName:
SetTelephoneStatus=STStatus_SetSelect;
input=FALSE;
break;
case STStatus_SetRela:
SetTelephoneStatus=STStatus_SetSelect;
input=FALSE;
break;
case STStatus_SetMobil:
SetTelephoneStatus=STStatus_SetSelect;
input=FALSE;
break;
case STStatus_SetHome:
SetTelephoneStatus=STStatus_SetSelect;
input=FALSE;
break;
case STStatus_SetOffice:
SetTelephoneStatus=STStatus_SetSelect;
input=FALSE;
break;
}
}
void Savenum()
{
int i;
char name[14][20];
char relation[14][20];
char mobil[14][20];
char home[14][20];
char office[14][20];
U16 Name[14][20];
U16 Relation[14][20];
U16 Mobil[14][20];
U16 Home[14][20];
U16 Office[14][20];
char name1[14][20];
char relation1[14][20];
char mobil1[14][20];
char home1[14][20];
char office1[14][20];
U16 Name1[20];
U16 Relation1[20];
U16 Mobil1[20];
U16 Home1[20];
U16 Office1[20];
switch(SetTelephoneStatus){
case STStatus_SetName:
Name1[20]=pTextCtrl1->text[20];
Unicode2stringChar(name, Name1);
strcpy(p[pMainListCtrl->CurrentSel].name,name);
SetTextCtrlEdit(pTextCtrl1, FALSE);
DrawTextCtrl(pTextCtrl1);
Savefile();
case STStatus_SetRela:
Relation1[20]=pTextCtrl2->text[20];
Unicode2stringChar(relation, Relation1);
strcpy(p[pMainListCtrl->CurrentSel].relation,relation);
SetTextCtrlEdit(pTextCtrl2, FALSE);
DrawTextCtrl(pTextCtrl2);
Savefile();
case STStatus_SetMobil:
Mobil1[20]=pTextCtrl3->text[20];
Unicode2stringChar(mobil,Mobil1);
strcpy(p[pMainListCtrl->CurrentSel].mobil,mobil);
SetTextCtrlEdit(pTextCtrl3,FALSE);
DrawTextCtrl(pTextCtrl3);
Savefile();
case STStatus_SetHome:
Home1[20]=pTextCtrl4->text[20];
Unicode2stringChar(home, Home1);
strcpy(p[pMainListCtrl->CurrentSel].home,home);
SetTextCtrlEdit(pTextCtrl4, FALSE);
DrawTextCtrl(pTextCtrl4);
Savefile();
case STStatus_SetOffice:
Office1[20]=pTextCtrl5->text[20];
Unicode2stringChar(office, Office1);
strcpy(p[pMainListCtrl->CurrentSel].office,office);
SetTextCtrlEdit(pTextCtrl5, FALSE);
DrawTextCtrl(pTextCtrl5);
Savefile();
}
}
void SetTelephoneCancel()
{
switch(SetTelephoneStatus){
case STStatus_SetName:
//CreateSetTelephoneArea(TRUE);
SetTextCtrlEdit(pTextCtrl1, FALSE);
SetTelephoneStatus=STStatus_SetSelect;
break;
case STStatus_SetRela:
//CreateSetTelephoneArea(TRUE);
SetTextCtrlEdit(pTextCtrl2, FALSE);
SetTelephoneStatus=STStatus_SetSelect;
break;
case STStatus_SetMobil:
//CreateSetTelephoneArea(TRUE);
SetTextCtrlEdit(pTextCtrl3, FALSE);
SetTelephoneStatus=STStatus_SetSelect;
break;
case STStatus_SetHome:
// CreateSetTelephoneArea(TRUE);
SetTextCtrlEdit(pTextCtrl4, FALSE);
SetTelephoneStatus=STStatus_SetSelect;
break;
case STStatus_SetOffice:
// CreateSetTelephoneArea(TRUE);
SetTextCtrlEdit(pTextCtrl5, FALSE);
SetTelephoneStatus=STStatus_SetSelect;
break;
case STStatus_SetSelect:
DestorySetTelephoneArea();
mainstatus=SET_DELETE;
SetWndCtrlFocus(NULL, ID_MainListBox);
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -