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

📄 win_loclocate.c~

📁 这是一个linux下基于MiniGUI的手机界面设计源码
💻 C~
📖 第 1 页 / 共 2 页
字号:
			{
				CheckTidCount( );
	 			Pthread_create( &tid_Processing[tidProcessing],&attr,MutiReportLoc,NULL);
			
			}
			
			skin_enable_item (&skin_loclocate,SIID_OK,FALSE);
                        skin_show_item (&skin_loclocate,SIID_OK,FALSE);
			skin_enable_item (&skin_loclocate, SIID_LOCATE,FALSE);
                        skin_show_item (&skin_loclocate, SIID_LOCATE,FALSE);
			skin_enable_item (&skin_loclocate,SIID_START,FALSE);
                        skin_show_item (&skin_loclocate,SIID_START,FALSE);
			skin_enable_item (&skin_loclocate,SIID_END,TRUE);
                        skin_show_item (&skin_loclocate,SIID_END,TRUE);
                       
	    break;
	 case SIID_END://连续定位
	
			startLocFlag = LOCSTOP;
			printf("set startLocFlag == LOCSTOP)\n");
			Pthread_cond_signal(&newLoc_cond);
			
			skin_enable_item (&skin_loclocate,SIID_OK,FALSE);
                        skin_show_item (&skin_loclocate,SIID_OK,FALSE);
			skin_enable_item (&skin_loclocate, SIID_LOCATE,FALSE);
                        skin_show_item (&skin_loclocate, SIID_LOCATE,FALSE);
			skin_enable_item (&skin_loclocate,SIID_START,TRUE);
                        skin_show_item (&skin_loclocate,SIID_START,TRUE);
			skin_enable_item (&skin_loclocate,SIID_END,FALSE);
                        skin_show_item (&skin_loclocate,SIID_END,FALSE);
                      
	    break;
	 case SIID_JINJILOCATE://紧急定位
	 		
	 			 			ObtainSendLocArg( EMERGENCY );
				CheckTidCount( );
	 			Pthread_create(&tid_Processing[tidProcessing],&attr,SendDataGram,NULL);
	 		
	 			locArg->locType = EMERGENCY;
				CheckTidCount( );
	 			Pthread_create( &tid_Processing[tidProcessing],&attr,AcceptLoc,(void *)locArg);
	 			
	    break;
	 case SIID_CANCEL:
		ClickCancel_loclocate ();    
		break;
	 case SIID_RETURN://return
	 	win_locOpen = WIN_LOCCLOSE;
	 	win_locate ( hWndMain);
		CloseTheWindow_loclocate ();
			
        break;

        }
    }

    return 1;
}

static void InitWindow_loclocate ()	
{
	//初始化时,"返回,取消,开始,确定" 都不可见
	skin_enable_item (&skin_loclocate,SIID_RETURN,TRUE);
             skin_show_item (&skin_loclocate,SIID_RETURN,TRUE);

	skin_enable_item (&skin_loclocate,SIID_CANCEL,FALSE);
              skin_show_item (&skin_loclocate,SIID_CANCEL,FALSE);




	skin_enable_item (&skin_loclocate,SIID_OK,FALSE);
              skin_show_item (&skin_loclocate,SIID_OK,FALSE);

	switch(flagloclocate){
	    case 1:
			skin_enable_item (&skin_loclocate,SIID_JINJILOCATE,FALSE);
                        skin_show_item (&skin_loclocate,SIID_JINJILOCATE,FALSE);

			skin_enable_item (&skin_loclocate,SIID_END,FALSE);
                        skin_show_item (&skin_loclocate,SIID_END,FALSE);
                        
          		skin_enable_item (&skin_loclocate,SIID_START,FALSE);
              		skin_show_item (&skin_loclocate,SIID_START,FALSE);

			skin_enable_item (&skin_loclocate,SIID_LOCATE,TRUE);
                        skin_show_item (&skin_loclocate,SIID_LOCATE,TRUE);
		break;
	    case 2:
		if (startLocFlag == LOCSTOP){	
		printf("Init startLocFlag == LOCSTOP)\n");	  
			skin_enable_item (&skin_loclocate,SIID_JINJILOCATE,FALSE);
                        skin_show_item (&skin_loclocate,SIID_JINJILOCATE,FALSE);

			skin_enable_item (&skin_loclocate,SIID_END,FALSE);
                       	skin_show_item (&skin_loclocate,SIID_END,FALSE);

			skin_enable_item (&skin_loclocate,SIID_LOCATE,FALSE);
                        skin_show_item (&skin_loclocate,SIID_LOCATE,FALSE);
                     skin_enable_item (&skin_loclocate,SIID_START,TRUE);
              	skin_show_item (&skin_loclocate,SIID_START,TRUE);
              	}
              else if(startLocFlag == LOCSTART)
              	{
              	printf("Init startLocFlag == LOCSTART)\n");
			skin_enable_item (&skin_loclocate,SIID_OK,FALSE);
                        skin_show_item (&skin_loclocate,SIID_OK,FALSE);
			skin_enable_item (&skin_loclocate, SIID_LOCATE,FALSE);
                        skin_show_item (&skin_loclocate, SIID_LOCATE,FALSE);
			skin_enable_item (&skin_loclocate,SIID_START,FALSE);
                        skin_show_item (&skin_loclocate,SIID_START,FALSE);
			skin_enable_item (&skin_loclocate,SIID_END,TRUE);
                        skin_show_item (&skin_loclocate,SIID_END,TRUE);
              		
              	}

		break;
	    case 3:

			skin_enable_item (&skin_loclocate,SIID_JINJILOCATE,TRUE);
                        skin_show_item (&skin_loclocate,SIID_JINJILOCATE,TRUE);
			skin_enable_item (&skin_loclocate,SIID_START,FALSE);
              		skin_show_item (&skin_loclocate,SIID_START,FALSE);
			skin_enable_item (&skin_loclocate,SIID_END,FALSE);
                       	skin_show_item (&skin_loclocate,SIID_END,FALSE);

			skin_enable_item (&skin_loclocate,SIID_LOCATE,FALSE);
                        skin_show_item (&skin_loclocate,SIID_LOCATE,FALSE);
                        

		break;
	}
}


static int msg_event_cb_loclocate (HWND hwnd, int message, WPARAM wparam, LPARAM lparam, int* result)
{
	HDC hdc;
	HDC hdc1;
	IVITEMINFO ivii_child;
       int j,i,k;
       char buff[40];
       switch (message) {
        	case MSG_CREATE:
        	
      			win_locOpen = WIN_LOCOPEN;
			//状态栏图片加载
			switch (flagloclocate)
			{
				case 1:
					LoadBitmap (HDC_SCREEN, &bmp_loclocate, "Pictures/a_location_1.PNG");
					break;
				case 2:
					LoadBitmap (HDC_SCREEN, &bmp_loclocate, "Pictures/a_location_2.PNG");
					break;
				case 3:
					LoadBitmap (HDC_SCREEN, &bmp_loclocate, "Pictures/a_location_3.PNG");
					break;
			}
					
					
			//按键区初始化
			InitWindow_loclocate();
			//菜单
	
			hIV_menu_loclocate =CreateMenuWindow(hwnd ,90,7, 1185);
			//HWND CreateMenuWindow( hwnd , int width,  int rowcount, int NO);
            	    	for (i = 0; i < TABLESIZE(icon_labels_loclocate); i++) {
                      	memset (&ivii_child, 0, sizeof(IVITEMINFO));
				ivii_child.bmp = NULL;
        			ivii_child.nItem =  i;
                		ivii_child.label = icon_labels_loclocate[i] ;
				ivii_child.addData = i;
        			SendMessage (hIV_menu_loclocate, IVM_ADDITEM, 0, (LPARAM)&ivii_child);
			}

 			W_hwndedit_loclocate = CreateWindow( CTRL_SLEDIT,  //纬度
								"",
								//WS_VISIBLE  | ES_TIP| WS_BORDER  ,// | ES_AUTOWRAP,
								WS_VISIBLE  | WS_CHILD | WS_BORDER,// |ES_CENTER,//|ES_READONLY|ES_RIGHT,// | ES_AUTOWRAP,
								ID_W_EDIT,
								35, 30,120 , 20, hwnd, 0);
			SendMessage (W_hwndedit_loclocate, EM_LIMITTEXT, 18,0L);//set length of inputing text
		


 			J_hwndedit_loclocate = CreateWindow( CTRL_SLEDIT,  //经度
									"",
									//WS_VISIBLE  | ES_TIP| WS_BORDER  ,// | ES_AUTOWRAP,
									WS_VISIBLE  | WS_CHILD | WS_BORDER ,//|ES_CENTER,//|ES_READONLY|ES_RIGHT,// | ES_AUTOWRAP,
									ID_W_EDIT,
									35, 60,120 , 20, hwnd, 0);
			SendMessage (J_hwndedit_loclocate, EM_LIMITTEXT, 18,0L);//set length of inputing text

 			locatehight_loclocate = CreateWindow( CTRL_SLEDIT,  //高程
									"",
									//WS_VISIBLE  | ES_TIP| WS_BORDER  ,// | ES_AUTOWRAP,
									WS_VISIBLE  | WS_CHILD | WS_BORDER ,//|ES_READONLY ,// | ES_AUTOWRAP,
									ID_W_EDIT,
									35, 90,85 , 25, hwnd, 0);
 			locateErr_loclocate = CreateWindow( CTRL_SLEDIT,  //高程误差
									"",
									//WS_VISIBLE  | ES_TIP| WS_BORDER  ,// | ES_AUTOWRAP,
									WS_VISIBLE  | WS_CHILD | WS_BORDER ,//|ES_READONLY ,// | ES_AUTOWRAP,
									449,
									120, 90,35 , 25, hwnd, 0);
					   
 			locatetime_loclocate = CreateWindow( CTRL_SLEDIT,  //时间
									"",
									//WS_VISIBLE  | ES_TIP| WS_BORDER  ,// | ES_AUTOWRAP,
									WS_VISIBLE  | WS_CHILD | WS_BORDER ,//|ES_READONLY ,// | ES_AUTOWRAP,
									ID_W_EDIT,
									35, 120,120 , 20, hwnd, 0);
						
						//坐标系
			gal_pixel pixel = RGB2Pixel (HDC_SCREEN, 0xFF, 0xFF, 0xFF);//set the color
						hWndCombox_Z = CreateWindow( CTRL_COMBOBOX,					
								"", WS_CHILD | WS_VISIBLE | CBS_EDITNOBORDER|//WS_BORDER|//
									CBS_READONLY|CBS_SPINARROW_LEFTRIGHT |CBS_SORT|CBS_SPINLIST,
								2343, RJ_X, 144 , 90, 25, hwnd, 0);
     	       	SetWindowBkColor (hWndCombox_Z, pixel);
			for(i=0;i<5;i++)
			{
				SendMessage (hWndCombox_Z, CB_ADDSTRING, 0,
				(LPARAM)coordiLabels_loclocate[i]);//(LPARAM)
			}			
			SendMessage (hWndCombox_Z, CB_SETCURSEL, GetCurrCoordinate (), 0 );//默认为系统设置的


			//高程方式
			hWndCombox_G = CreateWindow( CTRL_COMBOBOX,
								"", WS_CHILD | WS_VISIBLE | CBS_EDITNOBORDER|//WS_BORDER|//
									CBS_READONLY|CBS_SPINARROW_LEFTRIGHT |CBS_SORT|CBS_SPINLIST,
								2343, 90, 144, 50, 25, hwnd, 0);
     	       	SetWindowBkColor (hWndCombox_G, pixel);
			for(i=0;i<2;i++)
			{
				SendMessage (hWndCombox_G, CB_ADDSTRING, 0,
				(LPARAM)labels_sysSetCoordinate[i]);//(LPARAM)
			}			
			SendMessage (hWndCombox_G, CB_SETCURSEL, 0, 0 );//默认大地高
			
			if( newLoc.usable == TRUE)
			{
				printf("Firstly create window, Flush the window!\n");
				ShowByDaDi (J_hwndedit_loclocate ,W_hwndedit_loclocate,
				newLoc.dwxx.longitude , 
				newLoc.dwxx.latitude) ;//显示"经度""纬度"
				
				
				ShowHighByDaDiGao (locatehight_loclocate,locateErr_loclocate ,
				newLoc.dwxx.height,
				newLoc.dwxx.abnormalHeigtht,
				newLoc.dwxx.normalSign,
				newLoc.dwxx.abnormalSign);//显示"高程"""高程误差"
 				
 				sprintf(buff ,"%4d-%2d-%2d %2d:%2d:%2d",
				newLoc.dwxx.year,
				newLoc.dwxx.mon,
				newLoc.dwxx.day,
				newLoc.dwxx.hour,
				newLoc.dwxx.minute,
				newLoc.dwxx.second);
 				SetWindowText (locatetime_loclocate, buff);//显示时间
			
			}
				
	        	break;
	  	case MSG_PAINT :
	
		  	hdc=BeginPaint (hwnd); 
					SetBkMode (hdc, BM_TRANSPARENT); 
		  			FillBoxWithBitmap (hdc, ZTL_PIC_X,ZTL_PIC_Y, ZTL_PIC_W,ZTL_PIC_H, &bmp_loclocate);
					switch (flagloclocate)
					{
					case 1:
						TextOut (hdc, WZ_ZTL_X4, WZ_ZTL_Y, "单次定位" );
						break;
					case 2:
						TextOut (hdc, WZ_ZTL_X4, WZ_ZTL_Y, "连续定位" );
						break;
					case 3:
						TextOut (hdc, WZ_ZTL_X4, WZ_ZTL_Y, "紧急定位" );
						break;
					}
					

					TextOut (hdc,3, 30, "纬度");
					TextOut (hdc,3, 60, "经度");
					TextOut (hdc,3, 93, "高程");
					TextOut (hdc,3, 120,"时间");
         
          EndPaint (hwnd,hdc);


	      break;
    }    
    return 1;
}


void win_loclocate(HWND hwndmain,int flag_loclocate){
    	MSG msg;
		flagloclocate=flag_loclocate;
		//flagloclocate=1 单次定位,//flagloclocate=2 连续定位,// flagloclocate=3 紧急定位 
	   LoadSkinBmps( &skin_loclocate, TRUE ,bmp_name_loclocate ,(sizeof (bmp_name_loclocate))/sizeof(char *) );
       if (skin_loclocate.bmps == NULL) {
      	  	printf ("Could not load skin bitmaps!\n");
        }
		if ( !skin_init (&skin_loclocate, main_event_cb_loclocate, msg_event_cb_loclocate) ){ 
		// 初始化皮肤 
        	printf ("skin init fail!%d\n\n");
    	}
    	else{
 			hWndMainloclocate = create_skin_control (&skin_loclocate, hwndmain,143, DEF_X_, DEF_Y_,
                                  DEF_WIDTH, DEF_HEIGHT);
		   	currShowWindowHwnd = hWndMainloclocate;

         }
}

#ifndef _LITE_VERSION
#include <minigui/dti.c>
#endif

⌨️ 快捷键说明

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