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

📄 main.c.bak

📁 这是嵌入式软件电话本的小软件
💻 BAK
📖 第 1 页 / 共 2 页
字号:
       char mobil[20];
       char home[20];
       char office[20];
       U16 Name[20];
      
       ClearScreen();
        ListCtrlReMoveAll(pMainListCtrl);
        mainstatus=SET_SERALL;
         
       
       for( i=0;i<14;i++){
         strcpy(name,people[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];
      char name2[14][20];
      char relation2[14][20];
      char mobil2[14][20];
      char home2[14][20];
      char office2[14][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,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_FRAME,NULL,NULL);
	
       SetRect(&rect,185,70,318,90);//创建关系文本框
       pTextCtrl2=CreateTextCtrl(ID_SetRela_TextCtrl, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_FRAME,NULL,NULL);
       
       SetRect(&rect,185,95,318,115);//创建手机文本框
       pTextCtrl3=CreateTextCtrl(ID_SetMobil_TextCtrl, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_FRAME,NULL,NULL);
      
       SetRect(&rect,185,120,318,140);//创建家庭电话文本框
       pTextCtrl4=CreateTextCtrl(ID_SetHome_TextCtrl, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_FRAME,NULL,NULL);
       
       SetRect(&rect,185,145,318,165);//创建办公电话文本框
       pTextCtrl5=CreateTextCtrl(ID_SetOffice_TextCtrl, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_FRAME,NULL,NULL);
       for(i=0;i<14;i++){
       	strcpy(name,people[i].name);
       	strcat(name2[i],name);
               strChar2Unicode(Name[i],name2[i]);
              strcpy(relation,people[i].relation);
              strcat(relation2[i],relation);
              strChar2Unicode(Relation[i],relation2[i]);
              strcpy(mobil,people[i].mobil);
              strcat(mobil2[i],mobil);
              strChar2Unicode(Mobil[i],mobil2[i]);
              strcpy(home,people[i].home);
              strcat(home2[i],home);
              strChar2Unicode(Home[i],home2[i]);
              strcpy(office,people[i].office);
              strcat(office2[i],office);
              strChar2Unicode(Office[i],office2[i]);
       }  
            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();
            DestoryDC(pdc);
            
}
void CreateSetTelephoneArea()
{     
     
      char name[20];
      char relation[20];
      char mobil[20];
      char home[20];
      char office[20];  
      U16 str[12];
      U16 Relation[20];
      U16 Mobil[20];
      U16 Home[20];
      U16 Office[20];
       structRECT rect;
       PDC pdc;
       ClearScreen();
       pdc=CreateDC();
       mainstatus=SET_ADDNEW;
       strcpy(name,people[0].name);
       strChar2Unicode(str,name);
        strcpy(relation,people[0].relation);
       strChar2Unicode(Relation,relation);
        strcpy(mobil,people[0].mobil);
       strChar2Unicode(Mobil,mobil);
        strcpy(home,people[0].home);
       strChar2Unicode(Home,home);
        strcpy(office,people[0].office);
       strChar2Unicode(Office,office);
       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_FRAME,NULL,NULL);
	SetTextCtrlText(pTextCtrl1, str,TRUE);
       SetRect(&rect,185,70,318,90);//创建关系文本框
       pTextCtrl2=CreateTextCtrl(ID_SetRela_TextCtrl, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_FRAME,NULL,NULL);
       SetTextCtrlText(pTextCtrl2, Relation,TRUE);
       SetRect(&rect,185,95,318,115);//创建手机文本框
       pTextCtrl3=CreateTextCtrl(ID_SetMobil_TextCtrl, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_FRAME,NULL,NULL);
       SetTextCtrlText(pTextCtrl3, Mobil,TRUE);
       SetRect(&rect,185,120,318,140);//创建家庭电话文本框
       pTextCtrl4=CreateTextCtrl(ID_SetHome_TextCtrl, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_FRAME,NULL,NULL);
       SetTextCtrlText(pTextCtrl4, Home,TRUE);
       SetRect(&rect,185,145,318,165);//创建办公电话文本框
       pTextCtrl5=CreateTextCtrl(ID_SetOffice_TextCtrl, &rect, FONTSIZE_MIDDLE, CTRL_STYLE_FRAME,NULL,NULL);
       SetTextCtrlText(pTextCtrl5, Office,TRUE);
     
       ReDrawOSCtrl();
       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);
       DestoryDC(pdc);
}

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;
	            
           }
	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_ADDNEW:
       	DestorySetTelephoneArea();
		ClearScreen();
		mainstatus=MAIN_TELE;
              ReLoadListCtrl(pMainListCtrl,&MainSer[0],SET_FUNCTION_NUM  );
		ReDrawOSCtrl();
		break;
    case SET_SERALL:
    	       DestoryTextCtrl(pTextCtrl1);
	DestoryTextCtrl(pTextCtrl2);
	DestoryTextCtrl(pTextCtrl3);
	DestoryTextCtrl(pTextCtrl4);
	DestoryTextCtrl(pTextCtrl5);
	FillRect(pdc, 134, 40, 319,200, GRAPH_MODE_NORMAL, COLOR_WHITE);
       	ClearScreen();
       	ReLoadListCtrl(pMainListCtrl,&MainSer[0],SET_FUNCTION_NUM  );
	    mainstatus=MAIN_TELE;
		ReDrawOSCtrl();
              break;
    case SHOW_DETAIL:
    	      DestoryTextCtrl(pTextCtrl1);
	DestoryTextCtrl(pTextCtrl2);
	DestoryTextCtrl(pTextCtrl3);
	DestoryTextCtrl(pTextCtrl4);
	DestoryTextCtrl(pTextCtrl5);
	FillRect(pdc, 134, 40, 319,200, GRAPH_MODE_NORMAL, COLOR_WHITE);
       	ClearScreen();
       	ShowAll();
	}
	DestoryDC(pdc);
	return TRUE;
}

U8 onKey(int nkey, int fnkey)
{        FILE *pfile;
	switch(nkey){
         case 4: ClearScreen();
          
          ++i;
          i=i%14;
          
          LCD_printf("Name: %s\n",people[i].name);
          LCD_printf("Relation: %s\n",people[i].relation);
          LCD_printf("Mobil: %s\n",people[i].mobil);
          LCD_printf("Home: %s\n",people[i].home);
          LCD_printf("Office: %s\n",people[i].office);

          return;
          
               
         case 5: ClearScreen();
          --i;
          i=i+14;
          
          i=i%14;        
          LCD_printf("Name: %s\n",people[i].name);
          LCD_printf("Relation: %s\n",people[i].relation);
          LCD_printf("Mobil: %s\n",people[i].mobil);
          LCD_printf("Home: %s\n",people[i].home);
          LCD_printf("Office: %s\n",people[i].office);

          return;
         

	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;
}

////////////////////////////////////////////////////////////////
void Rtc_Disp_Task(void *Id) //时钟显示更新任务
{
	U16 strtime[10];
	INT8U err;
	
	for(;;){
		if(Rtc_IsTimeChange(RTC_SECOND_CHANGE)){//不需要更新显示
			
			Rtc_Format("%H:%I:%S",strtime);
			SetTextCtrlText(ptimeTextCtrl, strtime,TRUE);
		}
		OSTimeDly(250);
	}
}


⌨️ 快捷键说明

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