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

📄 configequip.c

📁 采用MINIGUI开发的一套GUI界面
💻 C
字号:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <pwd.h>            
                    
#include <minigui/common.h>           
#include <minigui/minigui.h>          
#include <minigui/gdi.h>            
#include <minigui/window.h>           
#include <minigui/control.h>          
#include <minigui/mgext.h>            
                    
#include <sys/types.h>            
#include <sys/shm.h>            
#include <sys/ipc.h>   
#include <sys/time.h>          
#include <ctype.h>          
#include "common.h"            
#include "configequip.h"



unsigned char * lcd[]={"COM1","COM2"};
unsigned char *stopbit[]={"1","1.5","2"};
 
 unsigned char *language[]={"简体中文","English"};
unsigned char *storagemedia[]={"U盘","64MB CF卡","128MB CF卡"};
unsigned char *keypadsound[]={"无声","小声","中声","大声"};
unsigned char *check[]={"无校验","奇校验","偶校验"};
unsigned char *data[]={"4","5","6","7","8"};
unsigned char *ip[]={"DHCP","自定"};

unsigned char * borate[]={"1200","2400","4800","9600","19200","38400"};

unsigned char *edit_init_equip[]={"MEMO","192.168.0.0","0.0.0.0","255.255.255.0"};
int edit_id[4]={EDIT_NAME , EDIT_IP, EDIT_NETW , EDIT_MASK};
int ctrl_id[15]={EDIT_NAME, BOX_EVEN ,BOX_ALERT,BOX_LCD,BOX_BORATE,BOX_STOP,EDIT_IP,EDIT_NETW,
                       BOX_LANG,BOX_MEMO, BOX_SOUN,BOX_CHECK,BOX_DATA,BOX_DHCP,EDIT_MASK};
//int combobox_id[]=
//unsigned char *ScreenSaver[]={"1","10","20","30","40","50","60"};
//unsigned char * DataStyle[]={"月月/日日/年年","日日/月月/年年"};

//unsigned char *PCTransfer[]={"Ethernet","RS232","RS422","RS485"};



void  ConfigEquipInit(HWND hDlg)
{
     int i;
   unsigned char buf[20];
	 
          SetDlgItemText(hDlg,BOX_EVEN,"1000");
		SetDlgItemText(hDlg,BOX_ALERT,"1000");
  //初始化组合框	 

     for (i=0;i<2;i++)
	 SendDlgItemMessage(hDlg,BOX_LCD,CB_ADDSTRING,0,(LPARAM)lcd[i]);
	  
     for (i=0;i<5;i++)
	 SendDlgItemMessage(hDlg,BOX_BORATE,CB_ADDSTRING,0,(LPARAM)borate[i]);
     for (i=0;i<3;i++)
	 SendDlgItemMessage(hDlg,BOX_STOP,CB_ADDSTRING,0,(LPARAM)stopbit[i]);


     for (i=0;i<2;i++)
	 SendDlgItemMessage(hDlg,BOX_LANG ,CB_ADDSTRING,0,(LPARAM)language[i]);
     for (i=0;i<2;i++)
            SetWindowText(GetDlgItem(hDlg,BOX_MEMO),storagemedia[i]);
   for (i=0;i<4;i++)
	 SendDlgItemMessage(hDlg,BOX_SOUN,CB_ADDSTRING,0,(LPARAM)keypadsound[i]);
     for (i=0;i<3;i++)
	 SendDlgItemMessage(hDlg,BOX_CHECK,CB_ADDSTRING,0,(LPARAM)check[i]);
     for (i=0;i<5;i++)
	 SendDlgItemMessage(hDlg, BOX_DATA  ,CB_ADDSTRING,0,(LPARAM)data[i]);
     for (i=0;i<2;i++)
	 SendDlgItemMessage( hDlg,BOX_DHCP,CB_ADDSTRING,0,(LPARAM)ip[i]);	   


	//初始化编辑框
    for (i=0;i<4;i++)
	{
	   sprintf(buf,edit_init_equip[i]);
          SetDlgItemText(hDlg,edit_id[i],buf);
      }
}

static void Combobox_proc(HWND hWnd,int id , int nc, DWORD add_data)
{
   //   if (nc==CBN_SELCHANGE)
	  	
}



int  EquipDialogProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam)
{
    HWND hButton;	
    int id;
    int nc;
    static int ctl_equip_id;
    static int index;
    static int num ;
    static  BOOL flag_entered;
    id= LOWORD (wParam);//控件编号
    nc=HIWORD(wParam);  //控件通知码
    switch (message) 
    { 
            case MSG_INITDIALOG:	
	     //初始化数据	
	     keydowned=0;
	     flag_entered=0;
		 index=0;
                     ConfigEquipInit(hDlg);
        	   //SetCaretPos(GetDlgItem(hDlg,EDIT_NAME),0,0);
		       SetFocusChild(GetDlgItem(hDlg,EDIT_NAME));
		   	ctl_equip_id=GetDlgCtrlID(GetFocusChild(hDlg)); 
			printf("ctl_equip_id=%d inited \n",ctl_equip_id);
		   //ShowCaret(GetDlgItem(hDlg,EDIT_NAME));
		    //SetNotificationCallback(GetDlgItem(hDlg, BOX_EVEN),Combobox_proc);
        	return 1;
            case MSG_SHOWWINDOW:
        		 {  
        		      }  		      
        		 break;       	        
 case MSG_KEYDOWN:
	 	if(!keydowned)
	 		{
	if(id==KEY_LEFT)SendDlgItemMessage(hDlg, CONF_EQUIP_LEFT, MSG_LBUTTONDOWN, 0,0);
	if(id==KEY_RIGHT)SendDlgItemMessage(hDlg, CONF_EQUIP_RIGHT, MSG_LBUTTONDOWN, 0,0);
	if(id==KEY_UP)SendDlgItemMessage(hDlg, CONF_EQUIP_UP, MSG_LBUTTONDOWN, 0,0);
	if(id==KEY_DOWN)SendDlgItemMessage(hDlg, CONF_EQUIP_DOWN, MSG_LBUTTONDOWN, 0,0);
	if(id==KEY_ENTER)SendDlgItemMessage(hDlg, CONF_EQUIP_ENTER, MSG_LBUTTONDOWN, 0,0);
	keydowned=1;
		}
	  break;			 
 case MSG_KEYUP:
		keydowned=0;
		if(id==KEY_EXIT)  		EndDialog (hDlg, 0);
		if(id==SCANCODE_F1)  		EndDialog (hDlg, 0);
		if(id==KEY_LEFT) 	
			{
			SendDlgItemMessage(hDlg, CONF_EQUIP_LEFT, MSG_LBUTTONUP, 0,0);
              	ctl_equip_id=equip_id_left[ctl_equip_id-EQ_F];
                   SetFocusChild( GetDlgItem(hDlg,ctl_equip_id));
			}
		if(id==KEY_RIGHT) 
			{
			SendDlgItemMessage(hDlg, CONF_EQUIP_RIGHT, MSG_LBUTTONUP, 0,0);
     			ctl_equip_id=equip_id_right[ctl_equip_id-EQ_F];
            		 SetFocusChild( GetDlgItem(hDlg,ctl_equip_id));
			}
		if(id==KEY_UP) 
			{
			SendDlgItemMessage(hDlg, CONF_EQUIP_UP, MSG_LBUTTONUP, 0,0);
 			if(flag_entered)//按过ENTER后选择BOX里面内容
				{
				 SendDlgItemMessage(hDlg,ctl_equip_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
				index--;if(index<0)index=num-1;
				SendDlgItemMessage(hDlg,ctl_equip_id,CB_SETCURSEL,index,0);				
				}		  
                   else 
                         	{
      				ctl_equip_id=equip_id_up[ctl_equip_id-EQ_F];
      				SetFocusChild( GetDlgItem(hDlg,ctl_equip_id));
      				}
			}
		if(id==KEY_DOWN) 
			{	
			SendDlgItemMessage(hDlg, CONF_EQUIP_DOWN, MSG_LBUTTONUP, 0,0);

 			if(flag_entered)//按过ENTER后选择BOX里面内容
     				{
     			 SendDlgItemMessage(hDlg,ctl_equip_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
				index++;if(index==num)index=0;
				SendDlgItemMessage(hDlg,ctl_equip_id,CB_SETCURSEL,index,0);				
 				}	  
                    else 
                 	    {
          		   ctl_equip_id=equip_id_down[ctl_equip_id-EQ_F];			
            	 	     SetFocusChild( GetDlgItem(hDlg,ctl_equip_id));				
            	           }
	 		}
		if(id==KEY_ENTER) 
			{	
	 		SendDlgItemMessage(hDlg, CONF_EQUIP_ENTER, MSG_LBUTTONUP, 0,0);
        			 if(flag_entered) 
         			{
       			flag_entered=0;
       			SetFocusChild( GetDlgItem(hDlg,ctl_equip_id));
        			}
       			 else
                     	{
       			 if((ctl_equip_id==BOX_EVEN)||(ctl_equip_id==BOX_ALERT))
					DigitalConfig (hDlg ); //弹出数字键盘
				else
					{
                     	 SendDlgItemMessage(hDlg,ctl_equip_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
                     	flag_entered=1;
				index=SendDlgItemMessage(hDlg,ctl_equip_id,CB_GETCURSEL,0,0);
			        num=SendDlgItemMessage(hDlg,ctl_equip_id,CB_GETCOUNT,0,0);
					}
                     	}

	 	 	}
		break;   
		
             case MSG_COMMAND:
              {                
			if(nc==EN_CLICKED)//被设置了焦点
			{
		  	ctl_equip_id=GetDlgCtrlID(GetFocusChild(hDlg)); 
			//printf("ctl_equip_id=%d EN_CLICKED \n",ctl_equip_id);
			}
		if (id == EN_CHANGE)
			{
			 SetDlgItemText(hDlg, ctl_equip_id,(unsigned char *)lParam);
			}			
 		if ( id==CONF_EQUIP_DBACK) 
 			{SaveEquipData(hDlg);
			EndDialog (hDlg, 0);
 			}


			
    	          }
    	}
         return DefaultDialogProc (hDlg, message, wParam, lParam);
 }

 void DlgConfEquip (HWND hWnd)
{
    DlgEquip.controls = CtrlEquip;
    
    DialogBoxIndirectParam (&DlgEquip, hWnd, EquipDialogProc, 0L);
}


void SaveEquipData(HWND hDlg)
{
      unsigned char str_resource[20];
      unsigned char str_goal[20];	
      int id;
      int i;	  
      char * config[]={"Name","AlertMax","LCD","BaudRate","StopBit","IP","NetW",
                               "Language","StorageMedia","Sound","AlarmLimit","Check",
                               "TestBit","DHCP","Mask"};
	for (i=0;i<16;i++)
	{  
            GetDlgItemText(hDlg,EDIT_NAME+i,str_goal,20);
            sprintf(str_resource,"%s","Config");
            SetValueToEtcFile("system.conf",str_resource,config[i],str_goal);
	}

	  
}





⌨️ 快捷键说明

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