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

📄 configtool.c

📁 采用MINIGUI开发的一套GUI界面
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <pwd.h>
#include <math.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/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "common.h"
#include "fonts.h"
#include "configtool.h"
const   unsigned char *tool_job1[]={
"开始记录","停止记录",
"记录报警","记录事件",
"不动作"
};  
const   unsigned char *tool_job2[]={
"启动DO","启动AO","启动DO",
"启动定时器","启动计数器","启动累加器",
"不动作"
};  
unsigned char *func_init[]={
	"关闭","启动"
};
/*包含了定时器,计数器,累加器*/
void  ConfTimerInit(HWND hDlg)
{
int i;
 unsigned char str[10];
unsigned char *type_init[]={
	"每日","每周","每月"
};


printf("sizeof()=%d",sizeof(*func_init));
  for (i=0;i<=3;i++){
 	 SendDlgItemMessage(hDlg,TBOX_TYPE,CB_ADDSTRING,0,(LPARAM)type_init[i]);
     	}  
  for (i=0;i<=2;i++){
 	 SendDlgItemMessage(hDlg,TBOX_FUNC,CB_ADDSTRING,0,(LPARAM)func_init[i]);
     	}
  for (i=0;i<=31;i++){
	 sprintf(str,"%02d",i);
	 SendDlgItemMessage(hDlg,TBOX_DAYS,CB_ADDSTRING,0,(LPARAM)str);
     	}
	
    for (i=0;i<=24;i++){
	 sprintf(str,"%02d",i);
	 SendDlgItemMessage(hDlg,TBOX_HOUR,CB_ADDSTRING,0,(LPARAM)str);
     	}
    for (i=0;i<=59;i++){
	  sprintf(str,"%02d",i);
	 SendDlgItemMessage(hDlg,TBOX_MINU ,CB_ADDSTRING,0,(LPARAM)str);
     	}
    for (i=0;i<=5;i++){
	 //sprintf(str,"%02d",i);
	 SendDlgItemMessage(hDlg,TBOX_JOB1,CB_ADDSTRING,0,(LPARAM)tool_job1[i]);
     	}
    for (i=0;i<=7;i++){
	// sprintf(str,"%02d",i);
	 SendDlgItemMessage(hDlg,TBOX_JOB2,CB_ADDSTRING,0,(LPARAM)tool_job2[i]);
     	}
	
              SendDlgItemMessage(hDlg,TBOX_DAYS,CB_SETCURSEL,1,0);				
       	SendDlgItemMessage(hDlg,TBOX_HOUR,CB_SETCURSEL,8,0);	
       	SendDlgItemMessage(hDlg,TBOX_MINU,CB_SETCURSEL,59,0);	

 
  //先假设AI总数为16
  ai_chan_sum=16;
}
int  ToolTimerDialogProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam)
{
    int id;
    int nc;
	static BOOL flag_entered;
	static   int  tool_bn_focus; 
	static int ctrl_tool_id,box_index,num;
    id= LOWORD (wParam);//控件编号
    nc=HIWORD(wParam);  //控件通知码
    switch (message) 
    { 
    case MSG_INITDIALOG:		
	
		box_index=1;
		ConfTimerInit(hDlg);
		SendDlgItemMessage(hDlg, TOOL_BN1, BM_SETSTATE , BST_PUSHED ,0);
  		SetFocusChild( GetDlgItem(hDlg,TBOX_TYPE));
    	  	ctrl_tool_id=TBOX_TYPE;
		tool_bn_focus=TOOL_BN1;
	return 1;
		case MSG_DESTROY:
		 bt_dlg=0;
		break;
	  case MSG_SHOWWINDOW:
			{  
		      }  		      
		 break;      
 case MSG_KEYDOWN:
 		if(!keydowned)
	 	{
	if(id==KEY_LEFT)SendDlgItemMessage(hDlg, TOOL_TIMER_LEFT, MSG_LBUTTONDOWN, 0,0);
	if(id==KEY_RIGHT)SendDlgItemMessage(hDlg, TOOL_TIMER_RIGHT, MSG_LBUTTONDOWN, 0,0);
	if(id==KEY_UP)SendDlgItemMessage(hDlg, TOOL_TIMER_UP, MSG_LBUTTONDOWN, 0,0);
	if(id==KEY_DOWN)SendDlgItemMessage(hDlg, TOOL_TIMER_DOWN, MSG_LBUTTONDOWN, 0,0);
	if(id==KEY_ENTER)SendDlgItemMessage(hDlg, TOOL_TIMER_ENTER, MSG_LBUTTONDOWN, 0,0);
	if(id==SCANCODE_F3)SendDlgItemMessage(hDlg, TOOL_TIMER_DLEFT, BM_SETSTATE , BST_PUSHED ,0);
	 if(id==SCANCODE_F4)
	 	SendDlgItemMessage(hDlg, TOOL_TIMER_DRIGHT, BM_SETSTATE , BST_PUSHED ,0);
	if(id==SCANCODE_F5)SendDlgItemMessage(hDlg, TOOL_ADD_TIMER, BM_SETSTATE , BST_PUSHED ,0);
	 if(id==SCANCODE_F6)
	 	SendDlgItemMessage(hDlg, TOOL_ADD_COUNTER, BM_SETSTATE , BST_PUSHED ,0);
	if(id==SCANCODE_F7)SendDlgItemMessage(hDlg, TOOL_ADD_ADD, BM_SETSTATE , BST_PUSHED ,0);


		keydowned=1;
		}
	  break;			 
 case MSG_KEYUP:
		keydowned=0;
	 		{
		if(id==SCANCODE_F1)  		EndDialog (hDlg, 0);
		if(id==KEY_EXIT)  		EndDialog (hDlg, 0);
		if(id==KEY_LEFT) 	
			{
			SendDlgItemMessage(hDlg, TOOL_TIMER_LEFT, MSG_LBUTTONUP, 0,0);
              	ctrl_tool_id=ttimer_id_left[ctrl_tool_id-TBOX_TYPE];
                   SetFocusChild( GetDlgItem(hDlg,ctrl_tool_id));
			}
		if(id==KEY_RIGHT) 
			{
			SendDlgItemMessage(hDlg, TOOL_TIMER_RIGHT, MSG_LBUTTONUP, 0,0);
     			ctrl_tool_id=ttimer_id_right[ctrl_tool_id-TBOX_TYPE];
            		 SetFocusChild( GetDlgItem(hDlg,ctrl_tool_id));
			}
		if(id==KEY_UP) 
			{
			SendDlgItemMessage(hDlg, TOOL_TIMER_UP, MSG_LBUTTONUP, 0,0);
 			if(flag_entered)//按过ENTER后选择BOX里面内容
				{
				 SendDlgItemMessage(hDlg,ctrl_tool_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
				//  box_index=SendDlgItemMessage(hDlg,ctrl_tool_id,CB_GETCURSEL,0,0);
				box_index--;if(box_index<1)box_index=num;
				SendDlgItemMessage(hDlg,ctrl_tool_id,CB_SETCURSEL,box_index,0);				
				
				}		  
                   else 
                         	{
      				ctrl_tool_id=ttimer_id_up[ctrl_tool_id-TBOX_TYPE];
      				SetFocusChild( GetDlgItem(hDlg,ctrl_tool_id));
      				}
			}
		if(id==KEY_DOWN) 
			{	
			SendDlgItemMessage(hDlg, TOOL_TIMER_DOWN, MSG_LBUTTONUP, 0,0);

 			if(flag_entered)//按过ENTER后选择BOX里面内容
     				{
     			 SendDlgItemMessage(hDlg,ctrl_tool_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
                      // num=SendDlgItemMessage(hDlg,ctrl_tool_id,CB_GETCOUNT,0,0);
     			//	  box_index=SendDlgItemMessage(hDlg,ctrl_tool_id,CB_GETCURSEL,0,0);
				box_index++;if(box_index==num)box_index=0;
				SendDlgItemMessage(hDlg,ctrl_tool_id,CB_SETCURSEL,box_index,0);				
 				}	  
                    else 
                 	    {
          		   ctrl_tool_id=ttimer_id_down[ctrl_tool_id-TBOX_TYPE];			
            	 	     SetFocusChild( GetDlgItem(hDlg,ctrl_tool_id));				
            	           }
	 		}
		if(id==KEY_ENTER) 
			{	
	 		SendDlgItemMessage(hDlg, TOOL_TIMER_ENTER, MSG_LBUTTONUP, 0,0);
        			 if(flag_entered) 
         			{
         			//    SendDlgItemMessage(hDlg,ctrl_tool_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
       			flag_entered=0;
       			 box_index=0;
       			 num=0;
       			SetFocusChild( GetDlgItem(hDlg,ctrl_tool_id));
        			}
       			 else
                     	{
                     		 SendDlgItemMessage(hDlg,ctrl_tool_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
                     		flag_entered=1;
			        num=SendDlgItemMessage(hDlg,ctrl_tool_id,CB_GETCOUNT,0,0);
							
                     	}

	 	 	}
	if(id==SCANCODE_F3)
		{
		SendDlgItemMessage(hDlg, TOOL_TIMER_DLEFT, BM_SETSTATE , 0 ,0);
	SendMessage(hDlg,MSG_COMMAND,TOOL_TIMER_DLEFT,0);

		}
	 if(id==SCANCODE_F4)
	 	{
	 	SendDlgItemMessage(hDlg, TOOL_TIMER_DRIGHT, BM_SETSTATE , 0 ,0);
	SendMessage(hDlg,MSG_COMMAND,TOOL_TIMER_DRIGHT,0);

	 	}
	if(id==SCANCODE_F5)
		{SendDlgItemMessage(hDlg, TOOL_TIMER_TIMER, BM_SETSTATE , 0 ,0);
		
		}
	 if(id==SCANCODE_F6)
	 	{SendDlgItemMessage(hDlg, TOOL_TIMER_COUNTER, BM_SETSTATE , 0 ,0);
	 	SendMessage(hDlg,MSG_COMMAND,TOOL_TIMER_COUNTER,0);
		}
	if(id==SCANCODE_F7)
		{SendDlgItemMessage(hDlg, TOOL_TIMER_ADD, BM_SETSTATE , 0 ,0);
		SendMessage(hDlg,MSG_COMMAND,TOOL_TIMER_ADD,0);
		}


		
	 	}
		break;   
	case MSG_COMMAND:
       {
        int id ;
	 id= LOWORD (wParam);
		//if(id==TOOL_TIMER_TIMER)   
		if(id==TOOL_TIMER_COUNTER)    
			{
	 	if(!bc_dlg) DlgConfCounter( hDlg); 
		else {bt_dlg=0;EndDialog (hDlg, 0);}

		
			}
		if(id==TOOL_TIMER_ADD)     
		{
		if(!ba_dlg) DlgConfAdd( hDlg); 
		else {bt_dlg=0;EndDialog (hDlg, 0);}
			
		}
		if(id==TOOL_TIMER_DBACK)     EndDialog (hDlg, 0);
		
 		if(id==TOOL_TIMER_DRIGHT)
			{
			SendMessage(GetDlgItem(hDlg,tool_bn_focus), BM_SETSTATE , 0 ,0);
			tool_bn_focus++;	
			if(tool_bn_focus>TOOL_BN6)tool_bn_focus=TOOL_BN1;
			SendMessage(GetDlgItem(hDlg,tool_bn_focus), BM_SETSTATE , BST_PUSHED ,0);

			}	
	if(id==TOOL_TIMER_DLEFT)	
    		{	
    		SendMessage(GetDlgItem(hDlg,tool_bn_focus), BM_SETSTATE , 0 ,0);
    		tool_bn_focus --;
    		if(tool_bn_focus <TOOL_BN1 ) tool_bn_focus =TOOL_BN6;
    		SendDlgItemMessage(hDlg, tool_bn_focus, BM_SETSTATE , BST_PUSHED ,0);

	}


		
	}
	break;

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

}

void  DlgConfToolTimer (HWND hWnd)
{
bt_dlg=1;
    DlgToolTimer.controls = ctrl_tool_timer;
    
    DialogBoxIndirectParam (&DlgToolTimer, hWnd, ToolTimerDialogProc, 0L);
}

void ConfCounterInit(HWND hDlg)
{

int i;
 unsigned char str[10];
 
unsigned char *counter_type_init[]={
	"HH","H","L","LL","No"
};

SetDlgItemText(hDlg, CTEDIT_NAME,"Counter1" );
SetDlgItemText(hDlg, CTEDIT_DESC,"计数器1" );
SetDlgItemText(hDlg, CTEDIT_UNIT,"默认" );
SetDlgItemText(hDlg, CTEDIT_DEFA,"0" );
SetDlgItemText(hDlg, CTEDIT1_SET,"100" );
SetDlgItemText(hDlg, CTEDIT2_SET,"100" );


    for (i=0;i<5;i++){
	 SendDlgItemMessage(hDlg,CTBOX1_TYPE,CB_ADDSTRING,0,(LPARAM)counter_type_init[i]);
     	}
    for (i=0;i<5;i++){
	 SendDlgItemMessage(hDlg,CTBOX2_TYPE,CB_ADDSTRING,0,(LPARAM)counter_type_init[i]);
     	}
	

    for (i=0;i<5;i++){
	 SendDlgItemMessage(hDlg,CTBOX1_JOB1,CB_ADDSTRING,0,(LPARAM)tool_job1[i]);
     	}
    for (i=0;i<5;i++){
	 SendDlgItemMessage(hDlg,CTBOX2_JOB1,CB_ADDSTRING,0,(LPARAM)tool_job2[i]);
     	}
    for (i=0;i<7;i++){
	 SendDlgItemMessage(hDlg,CTBOX1_JOB2,CB_ADDSTRING,0,(LPARAM)tool_job1[i]);
     	}
  for (i=0;i<7;i++){
	 SendDlgItemMessage(hDlg,CTBOX2_JOB2,CB_ADDSTRING,0,(LPARAM)tool_job2[i]);
     	}
 



}



int  ToolCounterDialogProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam)
{
    int id;
    int nc;
static   int  ct_bn_focus; 	
 static int ctrl_tool_id;
 static int box_index;
 static int num;
    id= LOWORD (wParam);//控件编号
    nc=HIWORD(wParam);  //控件通知码

    switch (message) 
    { 
    case MSG_INITDIALOG:	
		ConfCounterInit(hDlg);
		ct_bn_focus=CT_BN1;
	return 1;
		case MSG_DESTROY:
		 bc_dlg=0;
		break;
	  case MSG_SHOWWINDOW:
			{  
		      }  		      
		 break;       	        
	 case MSG_KEYDOWN:
	if(id==KEY_LEFT)SendDlgItemMessage(hDlg, TOOL_CT_LEFT, MSG_LBUTTONDOWN, 0,0);
	if(id==KEY_RIGHT)SendDlgItemMessage(hDlg, TOOL_CT_RIGHT, MSG_LBUTTONDOWN, 0,0);
	if(id==KEY_UP)SendDlgItemMessage(hDlg, TOOL_CT_UP, MSG_LBUTTONDOWN, 0,0);
	if(id==KEY_DOWN)SendDlgItemMessage(hDlg, TOOL_CT_DOWN, MSG_LBUTTONDOWN, 0,0);
	if(id==KEY_ENTER)SendDlgItemMessage(hDlg, TOOL_CT_ENTER, MSG_LBUTTONDOWN, 0,0);
	if(id==SCANCODE_F3)SendDlgItemMessage(hDlg, TOOL_CT_DLEFT, BM_SETSTATE , BST_PUSHED ,0);
	 if(id==SCANCODE_F4)
	 	SendDlgItemMessage(hDlg, TOOL_CT_DRIGHT, BM_SETSTATE , BST_PUSHED ,0);
	if(id==SCANCODE_F5)SendDlgItemMessage(hDlg, TOOL_ADD_TIMER, BM_SETSTATE , BST_PUSHED ,0);
	 if(id==SCANCODE_F6)
	 	SendDlgItemMessage(hDlg, TOOL_ADD_COUNTER, BM_SETSTATE , BST_PUSHED ,0);
	if(id==SCANCODE_F7)SendDlgItemMessage(hDlg, TOOL_ADD_ADD, BM_SETSTATE , BST_PUSHED ,0);

	break;			 
	 case MSG_KEYUP:	
	 		{
		if(id==KEY_EXIT)  		EndDialog (hDlg, 0);
		if(id==SCANCODE_F1)  		EndDialog (hDlg, 0);
		if(id==KEY_LEFT) 	
			{
			SendDlgItemMessage(hDlg, TOOL_CT_LEFT, MSG_LBUTTONUP, 0,0);
              	ctrl_tool_id=ct_id_left[ctrl_tool_id-CTEDIT_NAME];
                   SetFocusChild( GetDlgItem(hDlg,ctrl_tool_id));
			}
		if(id==KEY_RIGHT) 
			{
			SendDlgItemMessage(hDlg, TOOL_CT_RIGHT, MSG_LBUTTONUP, 0,0);
     			ctrl_tool_id=ct_id_right[ctrl_tool_id-CTEDIT_NAME];
            		 SetFocusChild( GetDlgItem(hDlg,ctrl_tool_id));
			}
		if(id==KEY_UP) 
			{
			SendDlgItemMessage(hDlg, TOOL_CT_UP, MSG_LBUTTONUP, 0,0);
 			if(flag_entered)//按过ENTER后选择BOX里面内容
				{
				 SendDlgItemMessage(hDlg,ctrl_tool_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
				//  box_index=SendDlgItemMessage(hDlg,ctrl_tool_id,CB_GETCURSEL,0,0);
				box_index--;if(box_index<1)box_index=num;
				SendDlgItemMessage(hDlg,ctrl_tool_id,CB_SETCURSEL,box_index,0);				
				
				}		  
                   else 

⌨️ 快捷键说明

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