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

📄 settimearea.c

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