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

📄 win_loclocate.c~

📁 这是一个linux下基于MiniGUI的手机界面设计源码
💻 C~
📖 第 1 页 / 共 2 页
字号:

/*
win_loclocate.c
*/

/***	COMPANY NAME:	国星**	FILE    NAME:	win_loclocate.c**	FILE	PATH:	Interface/win_loclocate.c**	WINDOWS NAME:	位置报告**	WINDOWS PATH:	定位 /  单次定位(连续定位)(紧急定位)**	OTHER INFORMATION;	无**	CREATER	NAME:	LiWencheng,JiangYuanqing**	MENDER	NAME:	JiangYuanqing,LiWencheng**	CHANGE  TIME:	11/14/2007 */
#include "sysSrcInfo.h"
#include "MobileSystem.h"
#define SIID_LOCATE			444
#define SIID_START			4451
#define SIID_END			446
#define SIID_JINJILOCATE	447
#define ID_W_EDIT			448
#define SIID_LSPINBOX_1		451
#define SIID_LSPINBOX_2		452
#define SIID_LSPINBOX_3		453

extern void *AcceptLoc( void *arg );
extern void *MutiReportLoc( void *arg );
extern void *SendDataGram( void *arg  );


static HWND hIV_menu_loclocate; //menu句柄
static int flagloclocate;		//flagloclocate=1 单次定位,//flagloclocate=2 连续定位,// flagloclocate=3 紧急定位
static BITMAP bmp_loclocate;	//缓存中间状态栏图片
static HWND hWndCombox_Z,hWndCombox_G;

static void CloseTheWindow_loclocate ();

/* 位图数组 */

static const char *bmp_name_loclocate[] = {
	"./Pictures/b_windowsbackground_1.PNG",			//第一张来做主界面
	"./Pictures/OK.PNG",
	"./Pictures/c_locate.PNG",				
	"./Pictures/c_start.PNG",			
	"./Pictures/c_end.PNG",				
	"./Pictures/c_jinjilocate.PNG",				
	"./Pictures/menu.PNG",				
	"./Pictures/b_cancel_0.PNG",			
	"./Pictures/return.PNG"	,			
};


static const char *icon_labels_loclocate[] = {
	"1 位置报告",
	"2 设为路标",
	"3 图号计算",
	"4 定位信息",
	"5 路标管理",
	"6 定位设置",
	"0 回主界面" 
};


static const char *coordiLabels_loclocate[] = {
	"北京54-大地坐标",
	"北京54-高斯坐标",
	"北京54-麦卡托",
	"北京54-空间直角",
	"北京54-WGS84",
};

static const char *labels_sysSetCoordinate[] = {
	"大地高",
	"正常高",
};



/* 定义皮肤元素数组 */
//三个button 为左中右,并不表示它就一定指OK或MENU
static skin_item_t skin_items_loclocate [] =
{

{SIID_OK,            SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
     BUTTONLEFT_X,   BUTTON_Y, {},   1 ,"" },
{SIID_LOCATE,        SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
     BUTTONLEFT_X,   BUTTON_Y, {},   2 ,"" },
{SIID_START,         SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
     BUTTONLEFT_X,   BUTTON_Y, {},   3 ,"" },
{SIID_END,           SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
     BUTTONLEFT_X,   BUTTON_Y, {},   4 ,"" },
{SIID_JINJILOCATE,   SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
     BUTTONLEFT_X,   BUTTON_Y, {},   5 ,"" },
{SIID_MENU,          SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
     BUTTONCENTER_X, BUTTON_Y, {},   6, "" },
{SIID_CANCEL,        SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
     BUTTONRIGHT_X,  BUTTON_Y, {},   7, "" },
{SIID_RETURN,        SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
     BUTTONRIGHT_X,  BUTTON_Y, {},   8, "" }

};

/* 定义皮肤 */
skin_head_t skin_loclocate =
{
    "main",  //const BITMAP* bmps;
    SKIN_STYLE_TOOLTIP, NULL, NULL, 
    0, 8, skin_items_loclocate, FALSE
 /** The number of the items in this skin. */  /* 定义皮肤元素数组 */
 //注意上面数组的大小变了,则8变成多少
};



static void  returnfunction()
{
 		SendMessage ( hIV_menu_loclocate, WS_DISABLED,0,0);
		EnableWindow (  hIV_menu_loclocate, FALSE);
             SendMessage ( hIV_menu_loclocate,  WS_DISABLED,0,0);
             ShowWindow ( hIV_menu_loclocate, SW_HIDE);

} 

static void EnableWindows (int trueFalse)
{

		EnableWindow ( W_hwndedit_loclocate,trueFalse);
		EnableWindow (J_hwndedit_loclocate ,trueFalse);
		EnableWindow ( locatehight_loclocate,trueFalse);
		EnableWindow ( locatetime_loclocate,trueFalse);
		EnableWindow ( locateErr_loclocate,trueFalse);
		EnableWindow ( hWndCombox_Z,trueFalse);
		EnableWindow ( hWndCombox_G,trueFalse);

}

static void ClickCancel_loclocate()
{

			EnableWindows (TRUE);

			SendMessage ( hIV_menu_loclocate, WS_DISABLED,0,0);
                  EnableWindow (  hIV_menu_loclocate, FALSE);
                  SendMessage ( hIV_menu_loclocate,  WS_DISABLED,0,0);
                  ShowWindow ( hIV_menu_loclocate, SW_HIDE);
//			InvalidateRect (hWndMainloclocate, NULL,TRUE);//re1draw

			skin_enable_item (&skin_loclocate,SIID_CANCEL,FALSE);
                        skin_show_item (&skin_loclocate,SIID_CANCEL,FALSE);
			skin_enable_item (&skin_loclocate,SIID_RETURN,TRUE);
                        skin_show_item (&skin_loclocate,SIID_RETURN,TRUE); 
			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:
			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);

		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_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,FALSE);
                        skin_show_item (&skin_loclocate,SIID_LOCATE,FALSE);
		break;
	}
			InvalidateRect (hWndMainloclocate, NULL,TRUE);//re1draw 
}

static void CloseTheWindow_loclocate ()
{
		win_locOpen = WIN_LOCCLOSE;
        	LoadSkinBmps( &skin_loclocate, FALSE ,        	bmp_name_loclocate ,        	(sizeof (bmp_name_loclocate))/sizeof(char *) );   /* 卸载位图资源 */
        	ShowWindow ( hWndMainloclocate, SW_HIDE);
		UnloadBitmap(  &bmp_loclocate );
}




static int main_event_cb_loclocate (HWND hwnd, skin_item_t* item, int event, void* data)
{

    char buff[10];
    int sel_menu;
    
    if (event == SIE_BUTTON_CLICKED) {
    switch (item->id) {  //按的那个图片	
		case SIID_OK:	
    			sel_menu = SendMessage ( hIV_menu_loclocate, IVM_GETCURSEL, 0, 0 );	
    				
			    switch(sel_menu){
				    case 0://位置报告
				  

						 win_locPlaceReport ( hWndMain ,flagloclocate );
					break;
				    case 1://设为路标
  
						win_locSetGuide (hWndMain , flagloclocate);
					break;
				    case 2://图号计算
					break;
				    case 3://定位信息
			     		win_LocateInfo (hWndMain ,flagloclocate);
					break;
				    case 4://路标管理
						win_locGuideManage (hWndMain , flagloclocate);
					break;
				    case 5://定位设置
						win_locSet (hWndMain ,flagloclocate);
					break;
				    case 6://回主界面
				    		win_index (hWndMain);

					break;
				  
				}//switch(sel_menu)
		CloseTheWindow_loclocate ();
		

            break;//case SIID_OK:

		case SIID_MENU:

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

						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,FALSE);
										skin_show_item (&skin_loclocate,SIID_LOCATE,FALSE);

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

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



			
				//EnableWindows (FALSE);
			   ShowWindow(hIV_menu_loclocate,SW_SHOW);
			    EnableWindow( hIV_menu_loclocate,TRUE);
                        SetFocusChild( hIV_menu_loclocate );
                        SendMessage(hIV_menu_loclocate,IVM_SELECTITEM,0,0);
                        SendMessage(hIV_menu_loclocate,IVM_SETCURSEL,0,0);
		
		    break;
      

//////////////////////////////////////////////////////////////////////////////////
		case SIID_LOCATE://单次定位
		
			
								ObtainSendLocArg( SINGLE);
				CheckTidCount( );
	 			Pthread_create(&tid_Processing[tidProcessing],&attr,SendDataGram,NULL);
				
				locArg->locType = SINGLE;
				CheckTidCount( );
	 			Pthread_create(&tid_Processing[tidProcessing],&attr,AcceptLoc,(void *)locArg);
	 		

	    break;
	 case SIID_START://连续定位(注册一个函数,定时调用)

			//Send a request			ObtainSendLocArg( MUTIPLE );
			CheckTidCount( );
	 		Pthread_create(&tid_Processing[tidProcessing],&attr,SendDataGram,NULL);	 		
			startLocFlag = LOCSTART;
			locArg->locType = MUTIPLE;
	 		printf("set startLocFlag == LOCSTART)\n");
	 		CheckTidCount( );
	 		Pthread_create( &tid_Processing[tidProcessing],&attr,AcceptLoc,(void *)locArg);
	 		 printf("---------LOCATE START NOW!----------------\n");
	 		 /* If the setting of mutiple locate report is  */
			/* applied,We shall start the thread to make it */
			if( GetApplyMutiReport () )

⌨️ 快捷键说明

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