📄 win_loclocate.c~
字号:
/*
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 + -