📄 dialog_all.c
字号:
/*********************************************************************************************************************************************************************/#include "..\Application\inc\config.h"INT32U myvalue;/*********************************************************************** Dialog resource** This table conatins the info required to create the dialog.* It has been created manually, but could also be created by a GUI-builder.*/static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = { { FRAMEWIN_CreateIndirect, "Unistrong GPS", 0, 10, 10, 180, 230, FRAMEWIN_CF_MOVEABLE, 0 }, //{ BUTTON_CreateIndirect, "OK", GUI_ID_OK, 100, 5, 60, 20 }, //{ BUTTON_CreateIndirect, "Cancel", GUI_ID_CANCEL, 100, 30, 60, 20 }, //{ TEXT_CreateIndirect, "LText", 0, 10, 55, 48, 15, TEXT_CF_LEFT }, //{ TEXT_CreateIndirect, "RText", 0, 10, 80, 48, 15, TEXT_CF_RIGHT }, { EDIT_CreateIndirect, NULL, GUI_ID_EDIT0, 60, 55, 110, 30, 0, 50 }, //{ EDIT_CreateIndirect, NULL, GUI_ID_EDIT1, 60, 80, 100, 15, 0, 50 }, { TEXT_CreateIndirect, "Height", 0, 10, 100, 48, 15, TEXT_CF_LEFT }, //{ EDIT_CreateIndirect, NULL, GUI_ID_EDIT2, 60, 100, 100, 15, 0, 6 }, //{ TEXT_CreateIndirect, "Bin", 0, 10, 120, 48, 15, TEXT_CF_RIGHT }, //{ EDIT_CreateIndirect, NULL, GUI_ID_EDIT3, 60, 120, 100, 15 }, //{ LISTBOX_CreateIndirect, NULL, GUI_ID_LISTBOX0,10, 10, 60, 40 }, //{ CHECKBOX_CreateIndirect, NULL, GUI_ID_CHECK0, 10, 140, 0, 0 }, //{ CHECKBOX_CreateIndirect, NULL, GUI_ID_CHECK1, 30, 140, 0, 0 }, //{ SLIDER_CreateIndirect, NULL, GUI_ID_SLIDER0, 60, 140, 100, 20 }, //{ SLIDER_CreateIndirect, NULL, GUI_ID_SLIDER1, 10, 170, 150, 30 }};/*********************************************************************** Dialog callback routine*/static void _cbCallback(WM_MESSAGE * pMsg) { int NCode, Id; WM_HWIN hEdit0, hEdit1, hEdit2, hEdit3, hListBox; WM_HWIN hWin = pMsg->hWin; myvalue = 200; myvalue++; switch (pMsg->MsgId) { case WM_INIT_DIALOG: GUI_SetDrawMode(GUI_DRAWMODE_XOR); FRAMEWIN_SetClientColor(hWin,GUI_GRAY0); FRAMEWIN_SetBarColor(hWin,1,GUI_GRAY3); FRAMEWIN_SetTextColor(hWin,GUI_GRAY15); FRAMEWIN_SetTextAlign(hWin,GUI_TA_HCENTER); FRAMEWIN_SetFont(hWin,&GUI_Font24_ASCII);////GUI_Font16_ASCII//GUI_Font24_ASCII //FRAMEWIN_SetText(hWin,"Hello, World"); //FRAMEWIN_SetDefaultCaptionSize(60); //GUI_SetColor(GUI_GRAY15); //EDIT_SetText(hEdit0, "My EDIT 0"); //EDIT_SetTextColor(hEdit0,0,GUI_GRAY1); //EDIT_SetDecMode(hEdit0,myvalue,0,1000,0,0); hEdit0 = WM_GetDialogItem(hWin, GUI_ID_EDIT0); EDIT_SetBkColor(hEdit0,0,GUI_GRAY4); EDIT_SetTextColor(hEdit0,0,GUI_GRAY10); EDIT_SetHexMode(hEdit0, myvalue, 0, 0xffff); EDIT_SetFont(hEdit0,&GUI_Font16_ASCII); EDIT_SetDefaultTextAlign(GUI_TA_LEFT); /* EDIT_SetText(hEdit1, "EDIT widget 1"); EDIT_SetTextAlign(hEdit1, GUI_TA_LEFT); EDIT_SetHexMode(hEdit2, 0x1234, 0, 0xffff); EDIT_SetBinMode(hEdit3, 0x1234, 0, 0xffff); LISTBOX_SetText(hListBox, _apListBox); WM_DisableWindow (WM_GetDialogItem(hWin, GUI_ID_CHECK1)); CHECKBOX_Check( WM_GetDialogItem(hWin, GUI_ID_CHECK0)); CHECKBOX_Check( WM_GetDialogItem(hWin, GUI_ID_CHECK1)); SLIDER_SetWidth( WM_GetDialogItem(hWin, GUI_ID_SLIDER0), 5); SLIDER_SetValue( WM_GetDialogItem(hWin, GUI_ID_SLIDER1), 50); SCROLLBAR_CreateAttached(hListBox, SCROLLBAR_CF_VERTICAL);*/ break; case WM_PAINT: myvalue++; GUI_Clear(); GUI_DispStringAt("Height:",10,10); GUI_DispDec(myvalue,8); //EDIT_SetBkColor(hEdit0,0,GUI_GRAY1); //EDIT_SetTextColor(hEdit0,0,GUI_GRAY15); default: WM_DefaultProc(pMsg); }}static void cbBackgroundWin(WM_MESSAGE* pMsg) {switch (pMsg->MsgId) {case WM_PAINT:GUI_Clear();default:WM_DefaultProc(pMsg);}}static void cbForegroundWin(WM_MESSAGE* pMsg) {switch (pMsg->MsgId) {case WM_PAINT:GUI_SetBkColor(GUI_GRAY1);GUI_SetColor(GUI_GRAY15);GUI_Clear();//GUI_DispString("Foreground window");break;default:WM_DefaultProc(pMsg);}}/*********************************************************************** main************************************************************************/FRAMEWIN_Handle hFrame;GUI_HWIN hWnd_1;GUI_HWIN hWndHistogram_2;//GUI_DispStringAt(CN_start"高度:"CN_end,10,10);void Frame(void) { hFrame = FRAMEWIN_Create("Unistrong GPS", NULL, WM_CF_SHOW, 1, 1, 239, 319); FRAMEWIN_SetClientColor(hFrame,GUI_GRAY10); FRAMEWIN_SetBarColor(hFrame,0,GUI_GRAY8); FRAMEWIN_SetTextColor(hFrame,GUI_GRAY15); FRAMEWIN_SetTextAlign(hFrame,GUI_TA_HCENTER); FRAMEWIN_SetFont(hFrame,&GUI_Font24_ASCII); WM_Paint(hFrame); hWnd_1 = WM_CreateWindowAsChild(0,0,0,220,WM_CF_SHOW,hFrame,NULL,0); WM_Paint(hWnd_1); WM_SelectWindow(hWnd_1); GUI_SetBkColor(GUI_GRAY3); GUI_Clear(); //窗口界限 //GUI_DrawHLine(217, 0, 239); GUI_DrawHLine(219, 0, 239); //纬度上线 GUI_DrawHLine(113, 0, 239); GUI_DrawHLine(115, 0, 239); //纬度下线 GUI_DrawHLine(183, 0, 239); GUI_DrawHLine(185, 0, 239); //竖线 GUI_DrawVLine(110,0,113); GUI_DrawVLine(112,0,113); //高度下线 GUI_DrawHLine(55, 0, 110); GUI_DrawHLine(57, 0, 110); hWndHistogram_2 = WM_CreateWindowAsChild(0,220,0,319-150,WM_CF_SHOW,hFrame,NULL,0); WM_Paint(hWndHistogram_2); WM_SelectWindow(hWndHistogram_2); GUI_SetBkColor(GUI_GRAY3); GUI_Clear(); //GUI_SetBkColor(GUI_GRAY10); //GUI_SetPenSize( 20 ); //GUI_DrawHLine(0, 0, 239); //GUI_DrawHLine(2, 0, 239); //GUI_SetPenSize( 1 ); //GUI_Exec(); // Uart_Printf(0,"WM_GetActiveWindow in Frame!!!=%d\n",WM_GetActiveWindow()); //Uart_Printf(0,"GUI_GetFont()!!!=%d\n",GUI_GetFont());}/********************************************************************************** 显示柱状图********************************************************************************/void DispHistogram(void) { INT8U i; INT16U x,y,x0,y0,y_half; GUI_POINT pPoint[4]; x = 10; y = 50; /* hWndHistogram = WM_CreateWindowAsChild(20,150,50,50,WM_CF_SHOW,hWndClientOfFrame,NULL,0); WM_Paint(hWndHistogram); WM_SelectWindow(hWndHistogram); GUI_SetBkColor(GUI_GRAY15); GUI_Clear(); */ WM_SelectWindow(hWndHistogram_2); GUI_SetFont(&GUI_Font16B_ASCII);//GUI_Font16B_ASCII GUI_SetColor(GUI_GRAY9); GUI_Clear(); for(i=0; i<7; i++) { y0 = y - i * 9; GUI_DrawHLine(y0,x,x+200); } GUI_SetColor(GUI_GRAY15); for(i=0; i<12; i++) { if(GPS_SatellitesInView[i].PRN_number != 0) { GUI_DispDecAt(GPS_SatellitesInView[i].PRN_number,x,y,2); if(GPS_SatellitesInView[i].Signal_Noise_Ratio != 0) { y_half = GPS_SatellitesInView[i].Signal_Noise_Ratio/2*10/12; x0 = x + 9; y0 = y - y_half; pPoint[0].x = -8; pPoint[0].y = y_half; pPoint[1].x = 3; pPoint[1].y = y_half; pPoint[2].x = 3; pPoint[2].y = -y_half; pPoint[3].x = -8; pPoint[3].y = -y_half; GUI_FillPolygon (&pPoint[0],4,x0,y0); } }else { GUI_DrawHLine(y+13,x,x+3); GUI_DrawHLine(y+13,x+5,x+8); } x += 17; } GUI_DrawHLine(y,10,10+200);}void DispSatellitesPosition(void){ INT8U i; GUI_POINT pPoint[4]; //const INT8U coefficient = 50; //系数 INT8U r0,r1,r2; //常量,三个半径 INT16U xo,yo; //常量,圆心 INT8U radius; //变量 INT16S x,y; //变量,可以是正负值 xo = 170; yo = 60; r0 = 3; r1 = 20; r2 = 40; WM_SelectWindow(hWnd_1); GUI_SetColor(GUI_GRAY11); GUI_SetFont(&GUI_Font16B_ASCII); //GUI_SetPenSize(5); GUI_DrawCircle(xo, yo, r0); GUI_DrawCircle(xo, yo, r1); GUI_DrawCircle(xo, yo, r2); GUI_SetFont(&CHINESE_FONT12); GUI_DispStringAt(CN_start"北"CN_end,xo-5,yo-r2-5); GUI_DispStringAt(CN_start"南"CN_end,xo-5,yo+r2-5); GUI_DispStringAt(CN_start"东"CN_end,xo+r2-5,yo-8); GUI_DispStringAt(CN_start"西"CN_end,xo-r2-5,yo-8); //GUI_DispCharAt('N',xo-4,yo-56); //GUI_DispCharAt('S',xo-4,yo+44); //GUI_DispCharAt('E',xo+45,yo-8); //GUI_DispCharAt('W',xo-53,yo-8); GUI_SetColor(GUI_GRAY15); GUI_SetFont(&GUI_Font6x8);//GUI_Font8_ASCII GUI_SetDrawMode(GUI_DRAWMODE_XOR); for(i=0; i<12; i++) { if(GPS_SatellitesInView[i].PRN_number != 0) { radius = (INT8U)(r2 * cos(GPS_SatellitesInView[i].Elevation/180.0*3.14159)); x = (INT16S)(radius * sin(GPS_SatellitesInView[i].Azimuth/180.0*3.14159)); y = 0-(INT16S)(radius * cos(GPS_SatellitesInView[i].Azimuth/180.0*3.14159)); if(GPS_SatellitesInView[i].Signal_Noise_Ratio != 0) { GUI_SetTextMode(GUI_TM_REV); /* pPoint[0].x = -6; pPoint[0].y = 4; pPoint[1].x = 6; pPoint[1].y = 4; pPoint[2].x = 6; pPoint[2].y = -6; pPoint[3].x = -6; pPoint[3].y = -6; //GUI_FillPolygon (&pPoint[0],4,xo+x,yo+y); */ //GUI_DrawPolygon(&pPoint[0],4,xo+x,yo+y); }else { GUI_SetTextMode(GUI_TM_NORMAL); } GUI_DispDecAt(GPS_SatellitesInView[i].PRN_number,(xo+x-4),(yo+y-4),2); } } GUI_SetTextMode(GUI_TM_NORMAL); GUI_SetDrawMode(GUI_DRAWMODE_NORMAL); GUI_SetFont(&GUI_Font16_ASCII);} /********************************************************************************** 整个屏幕的显示********************************************************************************/void Display(void){ //GUI_Clear(); WM_SelectWindow(hWnd_1); GUI_SetColor(GUI_GRAY15); //GUI_DispHexAt((INT32U)GUI_GetFont(),100,120,8); //高度显示 GUI_SetFont(&CHINESE_FONT12);//GUI_Font16_ASCII GUI_DispStringAt(CN_start"高度"CN_end,10,10); if(gprmc.Status == 'A') { GUI_DispString(CN_start"搜索卫星"CN_end); }else { GUI_DispString(CN_start"二维位置"CN_end); } GUI_SetFont(&GUI_Font24B_1); GUI_DispCharAt(' ',10,30); GUI_DispFloatMin(gpgga.AntennaHeight,1); GUI_DispStringAt(" M", 70,30); //速度显示 GUI_SetFont(&CHINESE_FONT12); GUI_DispStringAt(CN_start"速度"CN_end,10,65); GUI_SetFont(&GUI_Font24B_1); GUI_DispCharAt(' ',10,85); GUI_DispFloatMin(gprmc.SpeedOverGround,1); GUI_DispString(" M/s"); //纬度显示 GUI_SetFont(&GUI_Font32B_1); //GUI_DispStringAt("Latitude: ",10,50); GUI_DispCharAt(gprmc.Latitude_Hemisphere,10,120); GUI_DispCharAt(' ',44,120); GUI_DispDec(gprmc.Latitude_Degree,2); GUI_DispChar(' '); GUI_DispFloat(gprmc.Latitude_Cent,7); GUI_DispChar(39); //39=' GUI_DrawCircle(84,120+5, 2); //经度显示 GUI_DispCharAt(gprmc.Longitude_Hemisphere,10,150); GUI_DispCharAt(' ',30,150); //GUI_DispChar(' '); GUI_DispDec(gprmc.Longitude_Degree,3); GUI_DispChar(' '); GUI_DispFloat(gprmc.Longitude_Cent,7); GUI_DispChar(39); //39=' GUI_DrawCircle(84,150+5, 2); //日期显示 GUI_SetFont(&GUI_Font24B_1);//GUI_Font8x16x1x2 GUI_Font24B_1 GUI_DispDecAt((gprmc.UTC_year+2000),10,190,4); GUI_DispChar('-'); GUI_DispDec(gprmc.UTC_month,2); GUI_DispChar('-'); GUI_DispDec(gprmc.UTC_day,2); //时间显示 //GUI_DispStringAt("Time:",10,110); GUI_DispString(" "); GUI_DispDec((gprmc.UTC_hour+8),2); GUI_DispChar(':'); GUI_DispDec(gprmc.UTC_minute,2); GUI_DispChar(':'); GUI_DispDec(gprmc.UTC_second,2); //柱状图显示 DispHistogram(); //卫星位置显示 DispSatellitesPosition(); // GUI_DispStringAt("OSCPUUsage:",10,130); //GUI_DispDec(OSCPUUsage,3); //GUI_DispStringAt("OSCtxSwCtr:",10,150); //GUI_DispDec(OSCtxSwCtr,5); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -