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

📄 configmeter.c

📁 采用MINIGUI开发的一套GUI界面
💻 C
📖 第 1 页 / 共 3 页
字号:

	SetDlgItemInt(hDlg, CT2_K1,card_flux_reg[id].K1,0);
	SetDlgItemInt(hDlg, CT2_K2,card_flux_reg[id].K2,0);
	SetDlgItemInt(hDlg, CT2_K3,card_flux_reg[id].K3,0);
	SetDlgItemInt(hDlg, CT2_K4,card_flux_reg[id].K4,0);
	
	SetDlgItemInt(hDlg, CT2_A1,card_flux_reg[id].A1,0);
	SetDlgItemInt(hDlg, CT2_A2,card_flux_reg[id].A2,0);

sprintf(str,"%0.4f",card_flux_reg[id].P);
  	SetDlgItemText(hDlg, CT2_P,str);
sprintf(str,"%0.4f",card_flux_reg[id].P20);
  	SetDlgItemText(hDlg, CT2_P20,str);
sprintf(str,"%0.4f",card_flux_reg[id].PA);
 	SetDlgItemText(hDlg, CT2_PA,str);

	
 	}
  //给下一个页初始化
void InitFCardP3(HWND hDlg)
{
int i;
int id;
unsigned char str[20];
   //板卡不存在时候
   flux_id=0;
   id=flux_id;
        for(i=0;i< dim(table_C1)  ;i++)
	        SendDlgItemMessage(hDlg,CT3_C1,CB_ADDSTRING,0, (LPARAM)table_C1[i]) ;
        for(i=0;i<dim(table_C2);i++)
	        SendDlgItemMessage(hDlg,CT3_C2,CB_ADDSTRING,0, (LPARAM)table_C2[i]) ;
        for(i=0;i<dim(table_C3);i++)
	        SendDlgItemMessage(hDlg,CT3_C3,CB_ADDSTRING,0, (LPARAM)table_C3[i]) ;
        for(i=0;i<dim(table_C4);i++)
	        SendDlgItemMessage(hDlg,CT3_C4,CB_ADDSTRING,0, (LPARAM)table_C4[i]) ;
        for(i=0;i<dim(table_C5);i++)
	        SendDlgItemMessage(hDlg,CT3_C5,CB_ADDSTRING,0, (LPARAM)table_C5[i]) ;
        for(i=0;i<dim(table_C6);i++)
	        SendDlgItemMessage(hDlg,CT3_C6,CB_ADDSTRING,0, (LPARAM)table_C6[i]) ;

	for(i=0;i<dim(table_DCA);i++)
	        SendDlgItemMessage(hDlg,CT3_DCA,CB_ADDSTRING,0, (LPARAM)table_DCA[i]) ;
        for(i=0;i<dim(table_PV);i++)
	        SendDlgItemMessage(hDlg,CT3_PV,CB_ADDSTRING,0, (LPARAM)table_PV[i]) ;
		
        for(i=0;i<dim(table_DT);i++)
	        SendDlgItemMessage(hDlg,CT3_DT,CB_ADDSTRING,0, (LPARAM)table_DT[i]) ;
        for(i=0;i<dim(table_DP);i++)
	        SendDlgItemMessage(hDlg,CT3_DP,CB_ADDSTRING,0, (LPARAM)table_DP[i]) ;
        for(i=0;i<dim(table_SV);i++)
	        SendDlgItemMessage(hDlg,CT3_SV,CB_ADDSTRING,0, (LPARAM)table_SV[i]) ;
        for(i=0;i<dim(table_PV);i++)
	        SendDlgItemMessage(hDlg,CT3_PV,CB_ADDSTRING,0, (LPARAM)table_PV[i]) ;
		
	SetDlgItemInt(hDlg, CT3_PB1,card_flux_reg[flux_id].PB1,0);
	SetDlgItemInt(hDlg, CT3_KK1,card_flux_reg[flux_id].KK1,0);
	SetDlgItemInt(hDlg, CT3_PB2,card_flux_reg[flux_id].PB2,0);
	SetDlgItemInt(hDlg, CT3_KK2,card_flux_reg[flux_id].KK1,0);
	SetDlgItemInt(hDlg, CT3_PL,card_flux_reg[flux_id].PL,0);
	SetDlgItemInt(hDlg, CT3_PH,card_flux_reg[flux_id].PH,0);
	SetDlgItemInt(hDlg, CT3_TL,card_flux_reg[flux_id].TL,0);
	SetDlgItemInt(hDlg, CT3_TH,card_flux_reg[flux_id].TH,0);


	SetDlgItemInt(hDlg, CT3_PB3,card_flux_reg[flux_id].PB3,0);
	SetDlgItemInt(hDlg, CT3_KK3,card_flux_reg[flux_id].KK1,0);
	
	SetDlgItemInt(hDlg, CT3_CAL,card_flux_reg[flux_id].CAL,0);
	SetDlgItemInt(hDlg, CT3_CAH,card_flux_reg[flux_id].CAH,0);

	
	SetDlgItemInt(hDlg, CT3_CAA,card_flux_reg[flux_id].CAA,0);
	SetDlgItemInt(hDlg, CT3_SL,card_flux_reg[flux_id].SL,0);
	SetDlgItemInt(hDlg, CT3_SH,card_flux_reg[flux_id].SH,0);

  }


   

  



int  MeterDialogProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam)
{
	HDC hdc;
	HDC hmemDC;
	 gal_pixel bar_back_color,bar_rect_color,bar_text_color; 
        int id ;
		static int nowpage=0;//记录参数页面按钮按下的次数
	    	static int ctrl_flux_id;//按键ID号或者是文本焦点号码
		static BOOL flag_entered;//是否按下了ENTER键
    		static int index;//上下键选择
    		static int num ;
		static  BOOL keydowned;
	  	id= LOWORD (wParam);
	
    switch (message) 
    { 
    case MSG_INITDIALOG:	
		
	   	CreateT1(hDlg);
		CreateT2(hDlg);
		CreateT3(hDlg);
		
		
	 	  InitFluxCard(hDlg);//填充初始化信息
	 	   InitFCardP2(hDlg);
	 	   InitFCardP3(hDlg);	
		   
		HideT2( hDlg);
		HideT3( hDlg);		   
	 	  //设置焦点
		SendDlgItemMessage(hDlg, CARD_FB1, BM_SETSTATE , BST_PUSHED ,0);
  		SetFocusChild( GetDlgItem(hDlg,CT1_NAME));
		page_base=CT1_NAME;
		ctrl_flux_id=CT1_NAME;//初始化


          EnableWindow(GetDlgItem(hDlg,CARD_FB2 ),FALSE);
          EnableWindow(GetDlgItem(hDlg,CARD_FB3),FALSE);		 
          EnableWindow(GetDlgItem(hDlg,CARD_FB4 ),FALSE);
		// MeterDlgInit(hDlg);
		SetTimer(hDlg,_ID_TIMER_CARDCOM,1000);	
	return 1;
		  case MSG_CREATE:
		  	break;
	  case MSG_SHOWWINDOW:
			{ 
		   if(flux_number>0)//表示存在流量卡
                       {
                       flux_id=0;
              	 	ReadFPage1(flux_id);//从通讯读取第一个卡
                       }	  
		      }  		      
		 break; 
      case MSG_TIMER:
		// SetRect (&top_rect, 80,0,640,40);
		//InvalidateRect (hDlg, &top_rect, FALSE);	
		if((card_flux_reg[flux_id].enabled)&&(nowpage==0))
			ReadFPage1(flux_id);
		  break;
	   case MSG_PAINT:
	   		hdc = BeginPaint(hDlg);  
			
		 	  if(nowpage==0) 
		 	  	{  	ShowFPage1(hDlg,hdc);
			
    				}
			  else if(nowpage==1) ShowFPage2( hDlg,  hdc);
			  else if(nowpage==2) ShowFPage3( hDlg,  hdc);
		     	EndPaint(hDlg,hdc);
	    break;	
	
 	case MSG_KEYDOWN:
		
        	if(!keydowned)
        	 {
              	if(id==KEY_LEFT)	
              	 SendDlgItemMessage(hDlg, METER_LEFT, MSG_LBUTTONDOWN, 0,0);
              	if(id==KEY_RIGHT)SendDlgItemMessage(hDlg, METER_RIGHT, MSG_LBUTTONDOWN, 0,0);
              	if(id==KEY_UP)SendDlgItemMessage(hDlg, METER_UP, MSG_LBUTTONDOWN, 0,0);
              	if(id==KEY_DOWN)SendDlgItemMessage(hDlg, METER_DOWN, MSG_LBUTTONDOWN, 0,0);
              	 if(id==KEY_ENTER)SendDlgItemMessage(hDlg, METER_ENTER, MSG_LBUTTONDOWN, 0,0);
				 
              	 if(id==KEY_LAST)SendDlgItemMessage(hDlg, MT_BOT_LEFT, BM_SETSTATE, BST_PUSHED,0);
              	 if(id==KEY_NEXT)SendDlgItemMessage(hDlg, MT_BOT_RIGHT, BM_SETSTATE, BST_PUSHED,0);
              	 if(id==KEY_PARA)SendDlgItemMessage(hDlg, MT_BOT_PAGE, BM_SETSTATE, BST_PUSHED,0);
              	 if(id==KEY_CARD)SendDlgItemMessage(hDlg, MT_BOT_CARD, BM_SETSTATE, BST_PUSHED,0);
              	 if(id==KEY_SET)SendDlgItemMessage(hDlg, MT_BOT_SET, BM_SETSTATE, BST_PUSHED,0);
              	 if(id==KEY_RETURN)SendDlgItemMessage(hDlg, MT_BOT_RETURN, BM_SETSTATE, BST_PUSHED,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, METER_LEFT, MSG_LBUTTONUP, 0,0);
			ctrl_flux_id=ct1_id_left[ctrl_flux_id-page_base];
	 		SetFocusChild( GetDlgItem(hDlg,ctrl_flux_id));
			}
		if(id==KEY_RIGHT) 
			{
			SendDlgItemMessage(hDlg, METER_RIGHT, MSG_LBUTTONUP, 0,0);
			ctrl_flux_id=ct1_id_right[ctrl_flux_id-page_base];	
	 		SetFocusChild( GetDlgItem(hDlg,ctrl_flux_id));
			}
		if(id==KEY_UP) 
			{
			SendDlgItemMessage(hDlg, METER_UP, MSG_LBUTTONUP, 0,0);
 			if(flag_entered)//按过ENTER后选择BOX里面内容
				{
				 SendDlgItemMessage(hDlg,ctrl_flux_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
				index--;if(index<0)index=num-1;
				SendDlgItemMessage(hDlg,ctrl_flux_id,CB_SETCURSEL,index,0);				
				}		  
                   else 
                         	{
      				ctrl_flux_id=ct1_id_up[ctrl_flux_id-page_base];
      				SetFocusChild( GetDlgItem(hDlg,ctrl_flux_id));
      				}
			}
		if(id==KEY_DOWN) 
			{	
			SendDlgItemMessage(hDlg, METER_DOWN, MSG_LBUTTONUP, 0,0);
 			if(flag_entered)//按过ENTER后选择BOX里面内容
     				{
     			 SendDlgItemMessage(hDlg,ctrl_flux_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
				index++;if(index==num)index=0;
				SendDlgItemMessage(hDlg,ctrl_flux_id,CB_SETCURSEL,index,0);				
 				}	  
                    else 
                 	    {
          		   ctrl_flux_id=ct1_id_down[ctrl_flux_id-page_base];			
            	 	     SetFocusChild( GetDlgItem(hDlg,ctrl_flux_id));				
            	           }
	 		}
			 if(id==KEY_ENTER){
			 	SendDlgItemMessage(hDlg, METER_ENTER, MSG_LBUTTONUP, 0,0);
        			if(flag_entered) 
                 		{
               		flag_entered=0;
               		SetFocusChild( GetDlgItem(hDlg,ctrl_flux_id));
                		}
               		else
                          {//3        
                          		if((ctrl_flux_id==CT1_ADDR)||
					((ctrl_flux_id>=CT2_A1)&&(ctrl_flux_id<=CT2_PA))||
					((ctrl_flux_id>=CT3_PB3)&&(ctrl_flux_id<=CT3_PH))
					)
						 DigitalConfig (hDlg ); //弹出数字键盘
				else
     			   	{
                          	 SendDlgItemMessage(hDlg,ctrl_flux_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
                          	flag_entered=1;
     				index=SendDlgItemMessage(hDlg,ctrl_flux_id,CB_GETCURSEL,0,0);
     			        num=SendDlgItemMessage(hDlg,ctrl_flux_id,CB_GETCOUNT,0,0);
                          	}
	 	 	}


				
				}
			 if(id==KEY_LAST){
			 	SendDlgItemMessage(hDlg, MT_BOT_LEFT, BM_SETSTATE, 0,0);


				
				}
			 if(id==KEY_NEXT){
			 	SendDlgItemMessage(hDlg, MT_BOT_RIGHT, BM_SETSTATE, 0,0);


				
				}
			 if(id==KEY_PARA){nowpage++;if(nowpage>2)nowpage=0;
 				SendDlgItemMessage(hDlg, MT_BOT_PAGE, BM_SETSTATE, 0,0);
				ShowNextPage(hDlg,nowpage);
				InvalidateRect(hDlg,NULL,TRUE);
			
				}
			 if(id==KEY_CARD){
			 	SendDlgItemMessage(hDlg, MT_BOT_CARD, BM_SETSTATE, 0,0);
				DlgPIDConf(hDlg);
				}
			 if(id==KEY_SET){
			 	SendDlgItemMessage(hDlg, MT_BOT_SET, BM_SETSTATE, 0,0);
				//得到地址
				
				//得到波特率
				
				//发送通讯命令下去
				
				SendCmd(hDlg,ctrl_flux_id);
				//重新读取命令
				//更新页面
				
				}
			 if(id==KEY_RETURN){
			 	SendDlgItemMessage(hDlg, MT_BOT_RETURN, BM_SETSTATE, 0,0);
				}

			}
 		 break;	
	case MSG_COMMAND:
       {
		if (id == EN_CHANGE)
			{
			 SetDlgItemText(hDlg, ctrl_flux_id,(unsigned char *)lParam);
			}
           if(id==METER_DBACK)    
	   	       EndDialog (hDlg, 0);
		  if(id==MT_BOT_RETURN)    
	   	       EndDialog (hDlg, 0);
 		if(id==MT_BOT_CARD)  

		  DlgPIDConf(hDlg);
	}
	break;
	case MSG_DESTROY:
		printf("CARDCOM timer keilled!/n");
		   KillTimer(hDlg,_ID_TIMER_CARDCOM); 
		DestroyAllControls(hDlg);
		break;
	case MSG_CLOSE:	

    		EndDialog (hDlg, 0);
		
		break;
    	}
   	 return DefaultDialogProc (hDlg, message, wParam, lParam);
    

}
void  DlgMeterConf (HWND hWnd)
{
    Dlg_meter.controls = ctrl_meter;
    
    DialogBoxIndirectParam (&Dlg_meter, hWnd, MeterDialogProc, 0L);
}






⌨️ 快捷键说明

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