📄 win_status.c~
字号:
/*win_status.c*/#include "sysSrcInfo.h"#define SIID_INTENSITY_1 1234 //主波#define SIID_INTENSITY 2224#define SIID_STATE_PLANNET 2#define SIID_STATE_ALARM 3#define SIID_MESSAGE 4#define SIID_TIMER 5#define SIID_BATTERY 6#define SIID_CLOSE 7#define SIID_INTENSITY_2 8 //从波#define SIID_HAS_ID 9#define ID_TIME 28#define INTENSITY_BUTTON1 11#define STATE_PLANNET_BUTTON2 12#define STATE_ALARM3 13#define MESSAGE_BUTTON4 14#define SIID_TIMER_BUTTON5 15#define BATTERY_BUTTON6 16//nothing#define MSG_DESTROYAnimation 17#define ZTL_WIDTH_ 26/*#define ALARM_OK 0#define ALARM_NAV 1#define ALARM_CRC 2#define ALARM_LOC 3*/#define CELL_STA 1#define CELL_GIF 2 #define CELL_CHONGDIAN 0#define STATUS_OK 1#define STATUS_NOTWORK 2//#define HAS_INFOMATION 1//#define NO_INFOMATION 0extern pthread_mutex_t nStaCount_Mutex;static HWND child , animationInfo , animationSta , animationAlarmOK,animationAlarmCRC,animationAlarmNav,animationAlarmLoc,animationCell;//任务栏区中各标量的位图资源路径数组char *mainWinBmps[MAINWINSTATUS] = { //主界面"./Pictures/b_windowsbackground_0.PNG"};char *beamIntenBmps[BEAMINTENSTATUS] = { //波束强度"./Pictures/beam_intensity_0.PNG","./Pictures/beam_intensity_1.PNG", "./Pictures/beam_intensity_2.PNG","./Pictures/beam_intensity_3.PNG","./Pictures/beam_intensity_4.PNG","./Pictures/beam_intensity_5.PNG"};char *B_StateBmps[B_STASTATUS] = { //卫星状态"./Pictures/State_Plannet_green.PNG","./Pictures/State_Plannet_purple.PNG"};char *sysAlarmBmps[SYSALMSTATUS] = { //报警"./Pictures/alarm_OK.PNG","./Pictures/alarm_navigate.PNG","./Pictures/alarm_local.PNG","./Pictures/alarm_CRC.PNG"};char *sysMessageBmps[SYSMESSTATUS] = { //消息 "./Pictures/no_message.PNG","./Pictures/has_message.PNG"};char *sysTimerBmps[SYSTIMSTATUS] = { //时间信息"./Pictures/timer_num.PNG"};char *sysCardInfoBmps[SYSCARDSTATUS] = { //是否有卡"./Pictures/has_ID.PNG"};char *batteryInfoBmps[BATTERYSTATUS] = { //电池电量"./Pictures/battery_0.PNG","./Pictures/battery_1.PNG","./Pictures/battery_2.PNG","./Pictures/battery_3.PNG","./Pictures/battery_4.PNG","./Pictures/battery_5.PNG"};static const char *currentBmps[10] = {"./Pictures/b_windowsbackground_0.PNG", //当前状态栏上的位图资源路径数组"./Pictures/beam_intensity_0.PNG", "./Pictures/beam_intensity_0.PNG", "./Pictures/State_Plannet_green.PNG","./Pictures/alarm_OK.PNG", //"./Pictures/no_message.PNG", "./Pictures/d_hidebutton.png", //5 "./Pictures/timer_num.PNG", "./Pictures/has_ID.PNG", "./Pictures/battery_0.PNG",//"./Pictures/OK.PNG", //10//"./Pictures/adjustTime.PNG", //11//"./Pictures/menu.PNG",//"./Pictures/return.PNG" //12 "./Pictures/TouMing.png"}; /* 定义皮肤元素特定属性 */static si_bmplabel_t timer = { "00:00", "0123456789:-" };/* 定义皮肤元素数组 */static skin_item_t skin_main_items [] ={{SIID_INTENSITY, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE |SI_NRMSLIDER_HORZ, 3, 0, {}, 1, ""},{SIID_INTENSITY_1, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE , 17, 0, {}, 2, ""},//{SIID_STATE_PLANNET, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE// , 33, 1, {}, 3, ""}, //{SIID_STATE_ALARM, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE// , 62, 0, {}, 4, ""},{SIID_TIMER, SI_TYPE_BMPLABEL | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE , 107,2, {}, 6, "Time", 0, &timer},{SIID_HAS_ID, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE , 131,0, {}, 7 , ""},{SIID_BATTERY, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE , 137, 0,{}, 8 ,"" },//BUTTONS//{INTENSITY_BUTTON1, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE//, ZTL_WIDTH_*0, 0, {}, 9, "" },//84{STATE_PLANNET_BUTTON2, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE , ZTL_WIDTH_*1, 0, {}, 9, "" },//84{STATE_ALARM3 , SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE , ZTL_WIDTH_*2, 0, {}, 9, "" },//84{MESSAGE_BUTTON4, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE , ZTL_WIDTH_*3, 0, {}, 9, "" },//84{SIID_TIMER_BUTTON5 , SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE , ZTL_WIDTH_*4, 0, {}, 9, "" },//84//{BATTERY_BUTTON6, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE// , ZTL_WIDTH_*5, 0, {}, 9, "" },//84};/* 定义皮肤 */static skin_head_t status_skin ={ "main", //const BITMAP* bmps; SKIN_STYLE_TOOLTIP, NULL, NULL, 0, 9, skin_main_items, FALSE /** The number of the items in this skin. */ /* 定义皮肤元素数组 */};/* 位图资源装/卸载函数 *//* typeIndex 是当前bmpsPathcurrentBmps数组类型索引值,匹配不同标志,如值"1"表示主波的状态值*//* statusIndex 是状态栏中标量的各状态对应位图资源在其路径数组中的索引值 *//* 只有在对任务栏区*指定*位图资源进行装/卸载时才会使用typeIndex,statusIndex参数,注意他们有效的取值范围*/void ChangeStateBmp( skin_head_t *skin, BOOL load , int tpyIndex,int statusIndex ){ if( tpyIndex >= 0 && tpyIndex < 12 )//若类型索引值在currentBmps结构体数组索引边界内则 装载或卸载指定状态索引值的位图资源 { switch ( tpyIndex ) { case 1 : if (load) //对主波状态位图装/卸载 { LoadBitmapFromFile (HDC_SCREEN,(PBITMAP)&(skin->bmps[tpyIndex]),beamIntenBmps[statusIndex]); currentBmps[1]= beamIntenBmps[statusIndex]; } else UnloadBitmap ((PBITMAP)&(skin->bmps[1])); break; case 2 : if (load) //对从波状态位图装/卸载 { LoadBitmapFromFile (HDC_SCREEN,(PBITMAP)&(skin->bmps[tpyIndex]),beamIntenBmps[statusIndex]); currentBmps[2]= beamIntenBmps[statusIndex]; } else UnloadBitmap ((PBITMAP)&(skin->bmps[2])); break; case 3 : if (load) //对卫星状态位图装/卸载 { LoadBitmapFromFile (HDC_SCREEN,(PBITMAP)&(skin->bmps[tpyIndex]),B_StateBmps[statusIndex]); currentBmps[3]= beamIntenBmps[statusIndex]; } else UnloadBitmap ((PBITMAP)&(skin->bmps[3])); break; case 4 : if (load) //对报警状态位图装/卸载 { LoadBitmapFromFile (HDC_SCREEN,(PBITMAP)&(skin->bmps[tpyIndex]),sysAlarmBmps[statusIndex]); currentBmps[4]= beamIntenBmps[statusIndex]; } else UnloadBitmap ((PBITMAP)&(skin->bmps[4])); break; case 5 : if (load) //对消息状态位图装/卸载 { LoadBitmapFromFile (HDC_SCREEN,(PBITMAP)&(skin->bmps[tpyIndex]),sysMessageBmps[statusIndex]); currentBmps[5]= beamIntenBmps[statusIndex]; } else UnloadBitmap ((PBITMAP)&(skin->bmps[5])); break; case 6 : if (load) //对时间状态位图装载 { LoadBitmapFromFile (HDC_SCREEN,(PBITMAP)&(skin->bmps[tpyIndex]),sysTimerBmps[statusIndex] ); currentBmps[6]= beamIntenBmps[statusIndex]; } break; case 7 : if (load) //对卡状态位图装/卸载 { LoadBitmapFromFile (HDC_SCREEN,(PBITMAP)&(skin->bmps[tpyIndex]),sysCardInfoBmps[statusIndex]); currentBmps[7]= beamIntenBmps[statusIndex]; } else UnloadBitmap ((PBITMAP)&(skin->bmps[7])); break; case 8 : if (load) //对电池状态位图装/卸载 { LoadBitmapFromFile (HDC_SCREEN,(PBITMAP)&(skin->bmps[tpyIndex]),batteryInfoBmps[statusIndex]); currentBmps[8]= beamIntenBmps[statusIndex]; } else UnloadBitmap ((PBITMAP)&(skin->bmps[8])); break; default: //更换主界面皮肤的功能有待解决 break; } //end of switch }}static void CloseTheWindow(){ int i; //MainWindowCleanup (hWndMaininfo); //skin_deinit (&skin_information); //MiniGUIExtCleanUp (); //ChangeStateBmp (&status_hWndMaininfoskin, FALSE,1,-1); //卸载指定的任务栏区皮肤元素位图资源 //ChangeStateBmp (&status_skin, FALSE,2,-1); //卸载指定的任务栏区皮肤元素位图资源 //ChangeStateBmp (&status_skin, FALSE,7,-1); //卸载指定的任务栏区皮肤元素位图资源 //ChangeStateBmp (&status_skin, FALSE,8,-1); //卸载指定的任务栏区皮肤元素位图资源 //SendMessage (hWndMainStatus,MSG_DESTROY,0,0); //ShowWindow ( hWndMainStatus, SW_HIDE); DestroyAllControls (hWndMain); LoadSkinBmps (&status_skin, FALSE,currentBmps,(sizeof (currentBmps))/sizeof(char *)); //return 1;//关闭成功返回true }void ShowPlannetState (int state){ switch (state) { case STATUS_OK: SendMessage (animationSta,ANM_STOPPLAY,0,0); break; case STATUS_NOTWORK: SendMessage (animationSta,ANM_STARTPLAY,0,0); break; } UpdateWindow (hWndMainStatus, TRUE); }void ShowMessage (int mess){ switch (mess) { case HAS_INFOMATION: Pthread_mutex_lock( &nStaCount_Mutex ); messageStatusCount ++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -