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

📄 main.c

📁 这是嵌入式软件电话本的小软件
💻 C
📖 第 1 页 / 共 2 页
字号:
void *SetFunction5[]={(void*)Showall1,(void*)Showall1,(void*)Showall1};
void *SetFunction6[]={(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,
	                        (void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi,(void*)OnSetjishi};
void OnSetTime()
{     
      
	SetTelephoneSetFocus();
	CreateSetTelephoneArea(TRUE);
	mainstatus=SHOW_DETAIL1;

}
void OnSetjishi(){
       SetjishiSetFocus();
	setjishiarea(TRUE);
	mainstatus=SHOW_DETAIL2;
}
void OnSetricheng(){
       SetrichengSetFocus();
       setrichengarea(TRUE);
       mainstatus=SHOW_MONTH;
}
void Menu_Tele()
{   ClearScreen();
	ListCtrlReMoveAll(pMainListCtrl);
       ReLoadListCtrl(pMainListCtrl,&MainSer[0],SET_FUNCTION_NUM);
	mainstatus=MAIN_TELE;
       ReDrawOSCtrl();
}
void Menu_JiShi()
{      ClearScreen();
    ListCtrlReMoveAll(pMainListCtrl);
       ReLoadListCtrl(pMainListCtrl,&JiShi[0],SET_FUNCTION_NUM1);
	mainstatus=MAIN_JISHI;
       ReDrawOSCtrl();
}
void Menu_RiCheng()
{      ClearScreen();
     ListCtrlReMoveAll(pMainListCtrl);
       ReLoadListCtrl(pMainListCtrl,&Ri[0],SET_FUNCTION_NUM2);
	mainstatus=MAIN_RICHENG;
       ReDrawOSCtrl();
	
}


void ShowAll()
{     int i;
       char name[20];
       U16 Name[20];
      
       ClearScreen();
       ListCtrlReMoveAll(pMainListCtrl);
       mainstatus=SET_SERALL;
       for( i=0;i<15;i++){
            strcpy(name,p[i].name);
            strChar2Unicode(Name,name);
            AddStringListCtrl(pMainListCtrl,Name);
        }
       ReDrawOSCtrl();
        
      }//在列表框中显示所有人员姓名
void Showall(){
	int i;
       char name[20];
       U16 Name[20];
       ClearScreen();
       ListCtrlReMoveAll(pMainListCtrl);
       mainstatus=SET_DELETE;
       for( i=0;i<15;i++){
            strcpy(name,p[i].name);
            strChar2Unicode(Name,name);
            AddStringListCtrl(pMainListCtrl,Name);
        }
      
       ReDrawOSCtrl();}//在列表框中显示所有人员姓名
void ShowDetail()
{     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];
       structRECT rect;
       PDC pdc;
       ClearScreen();
       pdc= CreateDC();
      
       mainstatus=SHOW_DETAIL;
       TextOut(pdc,135,50,ch6,TRUE,FONTSIZE_SMALL);//姓名
       TextOut(pdc, 135, 75, ch7, TRUE, FONTSIZE_SMALL);//关系
       TextOut(pdc, 135, 100, ch8, TRUE, FONTSIZE_SMALL);//移动电话
       TextOut(pdc, 135, 125, ch9, TRUE, FONTSIZE_SMALL);//家庭电话
       TextOut(pdc, 135, 150, ch0, TRUE, FONTSIZE_SMALL);//办公电话
       SetRect(&rect,185,45,318,65);	//创建姓名文本框
	pTextCtrl6=CreateTextCtrl(ID_SetName_TextCtrl1, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_3DDOWNFRAME,NULL,NULL);

       SetRect(&rect,185,70,318,90);//创建关系文本框
       pTextCtrl7=CreateTextCtrl(ID_SetRela_TextCtrl1, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_3DDOWNFRAME,NULL,NULL);
     
       SetRect(&rect,185,95,318,115);//创建手机文本框
       pTextCtrl8=CreateTextCtrl(ID_SetMobil_TextCtrl1, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_3DDOWNFRAME,NULL,NULL);
     
       SetRect(&rect,185,120,318,140);//创建家庭电话文本框
       pTextCtrl9=CreateTextCtrl(ID_SetHome_TextCtrl1, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_3DDOWNFRAME,NULL,NULL);

       SetRect(&rect,185,145,318,165);//创建办公电话文本框
       pTextCtrl0=CreateTextCtrl(ID_SetOffice_TextCtrl1, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_3DDOWNFRAME,NULL,NULL);
 
       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(pTextCtrl6, Name[pMainListCtrl->CurrentSel],TRUE);
       SetTextCtrlText(pTextCtrl7, Relation[pMainListCtrl->CurrentSel],TRUE);
       SetTextCtrlText(pTextCtrl8, Mobil[pMainListCtrl->CurrentSel],TRUE);
       SetTextCtrlText(pTextCtrl9, Home[pMainListCtrl->CurrentSel],TRUE);
       SetTextCtrlText(pTextCtrl0, Office[pMainListCtrl->CurrentSel],TRUE);
       ReDrawOSCtrl();
       DestoryDC(pdc);
            
}//显示人员具体信息
void ShowMonth(){
	    ClearScreen();
       ListCtrlReMoveAll(pMainListCtrl);
       ReLoadListCtrl(pMainListCtrl,&Mo[0],SET_FUNCTION_NUM21);
	   mainstatus=SER_RI;
       ReDrawOSCtrl();
}

void Showall1(){
      char zhu[20];
      U16 Zhu[20];
	FILE *pfile;
	int i;
	ClearScreen();
      pfile=OpenOSFile(TextFile1name,FILEMODE_READ);

	 if(pfile==NULL){
		LCD_printf("Can't Open file!\n");
		for(;;)
			OSTimeDly(1000);
	   }
         for(i=0;i<31;i++){
         ReadOSFile(pfile,(U8*)&j[i],sizeof(j));
         
         }
       CloseOSFile(pfile);
        ClearScreen();
        ListCtrlReMoveAll(pMainListCtrl);
        mainstatus=SET_SERJI;
        for( i=0;i<31;i++){
         strcpy(zhu,j[i].zhu);
         strChar2Unicode(Zhu,zhu);
         AddStringListCtrl(pMainListCtrl,Zhu);}
      
         ReDrawOSCtrl();
}//在列表框中显示所有事件主题
U8 OnOk()
{
	switch(mainstatus){
	case MAIN_MENU:	//主菜单状态
		if(pMainListCtrl->CurrentSel>=0 && pMainListCtrl->CurrentSel<4)
			( (void (*)(void)) (MainFunction[pMainListCtrl->CurrentSel]) )();
		return TRUE;
	case MAIN_TELE:
               if(pMainListCtrl->CurrentSel>=0 && pMainListCtrl->CurrentSel<5)
			( (void (*)(void)) (SetFunction[pMainListCtrl->CurrentSel]) )();
                 return TRUE;
       case SET_SERALL:
       	 if(pMainListCtrl->CurrentSel>=0 && pMainListCtrl->CurrentSel<15)
			( (void (*)(void)) (SetFunction1[pMainListCtrl->CurrentSel]) )();
                 return TRUE;
       
       case SET_DELETE:
       	if(pMainListCtrl->CurrentSel>=0 && pMainListCtrl->CurrentSel<15)
			( (void (*)(void)) (SetFunction2[pMainListCtrl->CurrentSel]) )();
                 return TRUE;
	case SHOW_DETAIL1:
		SetTelephoneOK();
		//Savenum();
		break;
	case MAIN_JISHI:
		if(pMainListCtrl->CurrentSel>=0 && pMainListCtrl->CurrentSel<4)
			( (void (*)(void)) (SetFunction5[pMainListCtrl->CurrentSel]) )();
                 return TRUE;
       case SET_SERJI:
       	if(pMainListCtrl->CurrentSel>=0 && pMainListCtrl->CurrentSel<31)
			( (void (*)(void)) (SetFunction6[pMainListCtrl->CurrentSel]) )();
                 return TRUE;
    case SHOW_DETAIL2:
    	SetjishiOK();
    	break;
	case MAIN_RICHENG:
		if(pMainListCtrl->CurrentSel>=0 && pMainListCtrl->CurrentSel<4)
			( (void (*)(void)) (SetFunction3[pMainListCtrl->CurrentSel]) )();
                 return TRUE;
       case SER_RI:
       	OnSetricheng();
       	break;
       case SHOW_MONTH:
       	SetrichengOK();
       	break;
           }
	return FALSE;
}

U8 OnCancel()
{   
       structRECT rect;  
	PDC pdc;
	pdc=CreateDC();
	switch(mainstatus){
	case MAIN_TELE:	
		ClearScreen();
	        ReLoadListCtrl(pMainListCtrl,&MainFn[0],MAIN_FUNCTION_NUM);
	        mainstatus=MAIN_MENU;
		 ReDrawOSCtrl();
		 break;
	case MAIN_JISHI:
		ClearScreen();
		ReLoadListCtrl(pMainListCtrl,&MainFn[0],MAIN_FUNCTION_NUM);
	        mainstatus=MAIN_MENU;
		 ReDrawOSCtrl();
		 break;
	case MAIN_RICHENG:
		ClearScreen();
		 ReLoadListCtrl(pMainListCtrl,&MainFn[0],MAIN_FUNCTION_NUM);
	     mainstatus=MAIN_MENU;
		 ReDrawOSCtrl();
		 break;
  
    case SET_DELETE:
    	      //DestorySetTelephoneArea();
   	      ClearScreen();
             ReLoadListCtrl(pMainListCtrl,&MainSer[0],SET_FUNCTION_NUM  );
	      mainstatus=MAIN_TELE;
	      ReDrawOSCtrl();
             break;
    case SET_SERALL:
    	      ClearScreen();
             ReLoadListCtrl(pMainListCtrl,&MainSer[0],SET_FUNCTION_NUM  );
	      mainstatus=MAIN_TELE;
	      ReDrawOSCtrl();
             break;
    case SET_SERJI:
    	      ClearScreen();
             ReLoadListCtrl(pMainListCtrl,&JiShi[0],SET_FUNCTION_NUM2 );
	      mainstatus=MAIN_JISHI;
	      ReDrawOSCtrl();
             break;
    case SHOW_DETAIL:
    	      DestoryTextCtrl(pTextCtrl6);
	      DestoryTextCtrl(pTextCtrl7);
	      DestoryTextCtrl(pTextCtrl8);
	      DestoryTextCtrl(pTextCtrl9);
	      DestoryTextCtrl(pTextCtrl0);
	      FillRect(pdc, 134, 40, 319,200, GRAPH_MODE_NORMAL, COLOR_WHITE);
       	/*ClearScreen();
       	ShowAll();*/
            mainstatus=SET_SERALL;
            break;
    case SHOW_DETAIL1:
    	      SetTelephoneCancel();
    	      break;
    case SHOW_DETAIL2:
    	      SetjishiCancel();
    	      break;
    case SER_RI:
    	      ClearScreen();
    	      ListCtrlReMoveAll(pMainListCtrl);
             ReLoadListCtrl(pMainListCtrl,&Ri[0],SET_FUNCTION_NUM2);
	         mainstatus=MAIN_RICHENG;
	         ReDrawOSCtrl();
	         break;
    case SHOW_MONTH:
    	      SetrichengCancel();
	      break;
	}
	DestoryDC(pdc);
	return TRUE;
}

U8 onKey(int nkey, int fnkey)
{    
	switch(nkey){
        
	case 3:	//F1=move up
		return OnKeyUp();
	case 7:	//F2=move down
		return OnKeyDown();
	case 11:	//F3=OK
		return OnOk();
	case 15:	//F4=cancel
		return OnCancel();
	}
         
         
	return FALSE;
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -