void EDIT_SetBinMode(EDIT_Handle hEdit, U32 Value, U32 Min, U32 Max) { EDIT_Obj* pObj; int MaxLen; WM_LOCK(); pObj = EDIT_H2P(hEdit); pObj->pfAddKeyEx = _AddKeyBin; pObj->pfUpdateBufer = _UpdateBuffer; pObj->CurrentValue = Value; pObj->CursorPos = 0; MaxLen = pObj->MaxLen; if (MaxLen <= 0 ) { MaxLen = _GetNumDigits(Max); } if (MaxLen > 32) { MaxLen = 32; } if (MaxLen != pObj->MaxLen) { EDIT_SetMaxLen(hEdit, MaxLen); } pObj->Min = Min; pObj->Max = Max; pObj->EditMode = GUI_EDIT_MODE_OVERWRITE; _UpdateBuffer(pObj); WM_UNLOCK(); }
void InitDialog_Cus(WM_MESSAGE * pMsg) { WM_HWIN hWin = pMsg->hWin; // //GUI_ID_TEXT_USER // TEXT_SetFont(WM_GetDialogItem(hWin,GUI_ID_TEXT_USER),&GUI_FontHZ_SongTi_16); EDIT_SetFont(WM_GetDialogItem(hWin,GUI_ID_EDIT_USER),&GUI_FontHZ_SongTi_16); TEXT_SetFont(WM_GetDialogItem(hWin,GUI_ID_TEXT_MODLE),&GUI_FontHZ_SongTi_16); EDIT_SetMaxLen(WM_GetDialogItem(hWin,GUI_ID_EDIT_USER),500); // //GUI_ID_TEXT_E_PROD // TEXT_SetFont(WM_GetDialogItem(hWin,GUI_ID_TEXT_E_PROD),&GUI_FontHZ_SongTi_16); EDIT_SetFont(WM_GetDialogItem(hWin,GUI_ID_EDIT_E_PROD),&GUI_FontHZ_SongTi_16); EDIT_SetMaxLen(WM_GetDialogItem(hWin,GUI_ID_EDIT_E_PROD),500); // //GUI_ID_TEXT_MODLE // TEXT_SetFont(WM_GetDialogItem(hWin,GUI_ID_TEXT_L_PROD),&GUI_FontHZ_SongTi_16); EDIT_SetFont(WM_GetDialogItem(hWin,GUI_ID_EDIT_L_PROD),&GUI_FontHZ_SongTi_16); EDIT_SetMaxLen(WM_GetDialogItem(hWin,GUI_ID_EDIT_L_PROD),500); // //GUI_ID_TEXT0 // TEXT_SetFont(WM_GetDialogItem(hWin,GUI_ID_TEXT_L_MODE),&GUI_FontHZ_SongTi_16); // // BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON_HOME),&GUI_FontHZ_SongTi_16); EDIT_SetMaxLen(WM_GetDialogItem(hWin,GUI_ID_EDIT_L_MODE),500); EDIT_SetMaxLen(WM_GetDialogItem(hWin,GUI_ID_EDIT_MODLE),500); // EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT_USER),custormer.custorm); EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT_E_PROD),custormer.elevator_productor); EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT_MODLE),custormer.series_no); EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT_L_PROD),custormer.limitor_productor); EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT_L_MODE),custormer.limitor_series); }
/*---------------------------------------------------------------------------* * Routine: _cbDialog *---------------------------------------------------------------------------* * Description: * Callback function used by emWin to process events for the active window. * Inputs: * WM_MESSAGE *pMsg -- message structure for current dialog. *---------------------------------------------------------------------------*/ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int Id, NCode; T_keyboardMapping *p = G_keypadCurrentMapping; switch (pMsg->MsgId) { case WM_INIT_DIALOG: // // Initialization of 'Window' // hItem = pMsg->hWin; G_window = hItem; WINDOW_SetBkColor(hItem, KEYBOARD_BACKGROUND_COLOR); //BUTTON_SetDefaultBkColor(KEY_BACKGROUND_COLOR, BUTTON_CI_UNPRESSED); EDIT_SetDefaultFont(&KEYBOARD_DEFAULT_FONT); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_BOX); EDIT_SetMaxLen(hItem, MAX_NUMBER_OF_CHARS); EDIT_SetText(hItem, G_textBox); EDIT_SetFont(hItem, &KEYBOARD_DEFAULT_FONT); G_textBoxIndex = EDIT_GetNumChars(hItem); hItem = WM_GetDialogItem(pMsg->hWin, ID_MESSAGE); TEXT_SetFont(hItem, &KEYBOARD_DEFAULT_FONT); TEXT_SetTextColor(hItem, GUI_BLACK); TEXT_SetBkColor(hItem, KEYBOARD_BACKGROUND_COLOR); TEXT_SetText(hItem, G_message); TEXT_SetTextAlign(hItem, GUI_TA_TOP); while (p->iID) { hItem = WM_GetDialogItem(pMsg->hWin, p->iID); BUTTON_SetFont(hItem, &KEYBOARD_DEFAULT_FONT); BUTTON_SetTextColor(hItem, BUTTON_CI_UNPRESSED, GUI_BLACK); BUTTON_SetTextColor(hItem, BUTTON_CI_PRESSED, GUI_BLACK); BUTTON_SetBkColor(hItem, BUTTON_CI_UNPRESSED, KEY_BACKGROUND_COLOR); BUTTON_SetBkColor(hItem, BUTTON_CI_PRESSED, GUI_LIGHTGRAY); //BUTTON_SetSkin(hItem, BUTTON_SKIN_FLEX); p++; } WM_MakeModal(pMsg->hWin); setNewButtonText(pMsg, 0, 0); break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; if (!IKeyboardHandleEvent(pMsg, NCode, Id)) { // Special cases go here // Nothing happens otherwise } case WM_POST_PAINT: // Make sure the all presses up til now are gone TouchscreenClearPresses(); break; default: WM_DefaultProc(pMsg); break; } }
/********************************************************************* * * _cbDialog */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int NCode; int Id; int i; switch (pMsg->MsgId) { case WM_INIT_DIALOG: hItem = pMsg->hWin; FRAMEWIN_SetTextColor(hItem, 0x00000000); // hItem = WM_GetDialogItem(pMsg->hWin, ID_TIMESET_TEXT_0); // TEXT_SetFont(hItem, &GUI_Font32_ASCII); // TEXT_SetTextColor(hItem, GUI_WHITE); hItem = WM_GetDialogItem(pMsg->hWin, ID_TIMESET_BUTTON_TITLE); BUTTON_SetSkinClassic(hItem); WIDGET_SetEffect(hItem, &WIDGET_Effect_None); BUTTON_SetText(hItem, ""); BUTTON_Set_Bitmap_Ex(pMsg->hWin, ID_TIMESET_BUTTON_TITLE, &_bmWhiteTimeCHN, 0, 13); Button_Set_BkColor(pMsg->hWin, ID_TIMESET_BUTTON_TITLE, GUI_BLACK); for(i=ID_TIMESET_BUTTON_CONFIRM;i<=ID_TIMESET_BUTTON_RESERVE5;i++){ hItem = WM_GetDialogItem(pMsg->hWin, i); Button_Init(hItem); if(i%2){ BUTTON_SetBkColor(hItem, BUTTON_CI_UNPRESSED, GUI_LIGHTGRAY); }else{ } } BUTTON_DispConfirmCHNStr(pMsg->hWin, ID_TIMESET_BUTTON_CONFIRM, 18, 43); BUTTON_DispCheckCHNStr(pMsg->hWin, ID_TIMESET_BUTTON_CHECK, 18, 43); BUTTON_DispResetCHNStr(pMsg->hWin, ID_TIMESET_BUTTON_RESET, 18, 43); BUTTON_DispCancelCHNStr(pMsg->hWin, ID_TIMESET_BUTTON_CANCEL, 18, 43); BUTTON_DispSerialNumCHNStr(pMsg->hWin, ID_TIMESET_BUTTON_SNSET, 14, 18); BUTTON_DispTimeCHNStr(pMsg->hWin, ID_TIMESET_BUTTON_TIMESET, 26, 18); BUTTON_DispTestSelCHNStr(pMsg->hWin, ID_TIMESET_BUTTON_TESTSELECT, 14, 18); // // Initialization of 'lwYear' // hItem = WM_GetDialogItem(pMsg->hWin, ID_TIMESET_LISTWHEEL_YEAR); ListWheel_Init(hItem); ListWheel_AddNumString(hItem, 2015, 2025); // // Initialization of 'lwMonth' // hItem = WM_GetDialogItem(pMsg->hWin, ID_TIMESET_LISTWHEEL_MONTH); ListWheel_Init(hItem); ListWheel_AddNumString(hItem, 1, 12); // // Initialization of 'lwDay' // hItem = WM_GetDialogItem(pMsg->hWin, ID_TIMESET_LISTWHEEL_DAY); ListWheel_Init(hItem); ListWheel_AddNumString(hItem, 1, 31); // // Initialization of 'lwHour' // hItem = WM_GetDialogItem(pMsg->hWin, ID_TIMESET_LISTWHEEL_HOUR); ListWheel_Init(hItem); ListWheel_AddNumString(hItem, 0, 23); // // Initialization of 'lwMin,lwSec' // for(i=ID_TIMESET_LISTWHEEL_MIN;i<=ID_TIMESET_LISTWHEEL_SEC;i++){ hItem = WM_GetDialogItem(pMsg->hWin, i); ListWheel_Init(hItem); ListWheel_AddNumString(hItem, 0, 59); } // // Initialization of 'edit' // for(i=ID_TIMESET_EDIT_SETVALUE;i<=ID_TIMESET_EDIT_SEC;i++){ hItem = WM_GetDialogItem(pMsg->hWin, i); EDIT_SetFont(hItem, GUI_FONT_24_ASCII); EDIT_SetTextMode(hItem); EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER); } hItem = WM_GetDialogItem(pMsg->hWin, ID_TIMESET_EDIT_SETVALUE); EDIT_SetMaxLen(hItem, 30); hItem = WM_GetDialogItem(pMsg->hWin, ID_TIMESET_EDIT_ACTVALUE); EDIT_SetMaxLen(hItem, 30); WM_HideWin(pMsg->hWin); break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch(Id) { case ID_TIMESET_BUTTON_CONFIRM: // Notifications sent by 'Confirm' switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: Button_ConfirmProc(pMsg->hWin); break; } break; case ID_TIMESET_BUTTON_CHECK: // Notifications sent by 'Check' switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: Button_CheckProc(pMsg->hWin); break; } break; case ID_TIMESET_BUTTON_RESET: // Notifications sent by 'Reset' switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: Button_ResetProc(pMsg->hWin); break; } break; case ID_TIMESET_BUTTON_CANCEL: // Notifications sent by 'Cancel' switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: Button_CancelProc(pMsg->hWin); break; } break; case ID_TIMESET_BUTTON_SNSET: switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: Button_SNSetProc(pMsg->hWin); break; } break; case ID_TIMESET_BUTTON_TESTSELECT: switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: Button_TestSelSetProc(pMsg->hWin); break; } break; case ID_TIMESET_LISTWHEEL_YEAR: // Notifications sent by 'lwYear' switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: break; case WM_NOTIFICATION_SEL_CHANGED: ListWheel_SelChangeProc(pMsg->hWin, ID_TIMESET_LISTWHEEL_YEAR, ID_TIMESET_EDIT_YEAR); break; } break; case ID_TIMESET_LISTWHEEL_MONTH: // Notifications sent by 'lwMonth' switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: break; case WM_NOTIFICATION_SEL_CHANGED: ListWheel_SelChangeProc(pMsg->hWin, ID_TIMESET_LISTWHEEL_MONTH, ID_TIMESET_EDIT_MONTH); break; } break; case ID_TIMESET_LISTWHEEL_DAY: // Notifications sent by 'lwDay' switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: break; case WM_NOTIFICATION_SEL_CHANGED: ListWheel_SelChangeProc(pMsg->hWin, ID_TIMESET_LISTWHEEL_DAY, ID_TIMESET_EDIT_DAY); break; } break; case ID_TIMESET_LISTWHEEL_HOUR: // Notifications sent by 'lwHour' switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: break; case WM_NOTIFICATION_SEL_CHANGED: ListWheel_SelChangeProc(pMsg->hWin, Id, ID_TIMESET_EDIT_HOUR); break; } break; case ID_TIMESET_LISTWHEEL_MIN: // Notifications sent by 'lwMin' switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: break; case WM_NOTIFICATION_SEL_CHANGED: ListWheel_SelChangeProc(pMsg->hWin, Id, ID_TIMESET_EDIT_MIN); break; } break; case ID_TIMESET_LISTWHEEL_SEC: // Notifications sent by 'lwSec' switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: break; case WM_NOTIFICATION_SEL_CHANGED: ListWheel_SelChangeProc(pMsg->hWin, Id, ID_TIMESET_EDIT_SEC); break; } break; } default: WM_DefaultProc(pMsg); break; } }
/********************************************************************* * * _cbBk_CFG_PID */ static void _cbBk_CFG_PID(WM_MESSAGE * pMsg) { static unsigned int GirdFlag = 0; int NCode, Id; switch (pMsg->MsgId) { case WM_PAINT: GUI_SetBkColor(GUI_BLUE); GUI_Clear(); GUI_DispStringAt("PID Configeration", 50, 10); // GUIDEMO_DrawBk(1); break; case WM_TOUCH: GirdFlag++; GRAPH_SetGridVis(hGraph,GirdFlag%3); //!< Display the if touch the screen break; /*******************/ case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); /* Id of widget */ NCode = pMsg->Data.v; /* Notification code */ switch (NCode) { case WM_NOTIFICATION_RELEASED: /* React only if released */ if (Id == ID_CFG_PID_BTN_SWTITCH_2_CURVE) /* ID =210 btn Button */ { PID_CFG_Flag = 1; //WM_DeleteWindow(hGraph); GPIO_ResetBits(GPIOF,GPIO_Pin_8); hWN_Dialog_PID_Frame = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbBk_Frame, hWM_HBKWIN_CFG_PID, 0, 0); BUTTON_SetText(btn1,"Parameter"); //FRAMEWIN_SetClientColor(WM_GetDialogItem(hWN_Dialog_PID_Frame,0),GUI_LIGHTBLUE); EDIT_SetMaxLen(WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT0),7); EDIT_SetMaxLen(WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT1),7); EDIT_SetMaxLen(WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT2),7); EDIT_SetMaxLen(WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT3),7); EDIT_SetMaxLen(WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT3),7); WM_SetFocus(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT)); //!< Set the Edit to Float mode { EDIT_SetFloatMode( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT0),1.0, 0.0,999.999,3,/*Three bit after dot*/ 0 ); EDIT_SetFloatMode( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT1),0.0, 0.0,999.999,3,/*Three bit after dot*/ 0 ); EDIT_SetFloatMode( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT2),0.0, 0.0,999.999,3,/*Three bit after dot*/ 0 ); EDIT_SetFloatMode( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT3),0.0, 0.0,999.999,3,/*Three bit after dot*/ 0 ); EDIT_SetFloatMode( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT4),0.0, 0.0,100.000,3,/*Three bit after dot*/ 0 ); } } if (Id == 203) /* ID =210 btn Button */ { BUTTON_SetText(btnClear1,"Back"); GPIO_SetBits(GPIOF,GPIO_Pin_8); WM_ShowWindow(hWM_HBKWIN_CURVE); WM_HideWindow(hWM_HBKWIN_CFG_PID); } break; default: { } } break; default: WM_DefaultProc(pMsg); } }
/********************************************************************* * * _cbDialog */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int cursorpos=0; int index=0; uint8_t res=0; uint8_t sel=0; char str[60]; uint8_t filename[110]; uint8_t NumChars=0; hItem = pMsg->hWin; WINDOW_SetBkColor(hItem, GUI_LIGHTGRAY); switch (pMsg->MsgId) { case WM_INIT_DIALOG: hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0); TEXT_SetFont(hItem,&GUI_FontHZ_Song_16); TEXT_SetTextAlign(hItem, TEXT_CF_HCENTER | TEXT_CF_VCENTER); TEXT_SetText(hItem, (char *)"保存自学习文件"); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1); TEXT_SetFont(hItem,&GUI_FontHZ_Song_16); TEXT_SetText(hItem, (char *)"文件名称:"); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_2); TEXT_SetFont(hItem,&GUI_FontHZ_Song_16); TEXT_SetText(hItem, (char *)"文件类型:WTR"); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_3); TEXT_SetFont(hItem,&GUI_FontHZ_Song_16); TEXT_SetText(hItem, (char *)"保存路径:"); hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_0); DROPDOWN_SetFont(hItem,&GUI_FontHZ_Song_16); DROPDOWN_AddString(hItem, (char *)"U盘"); DROPDOWN_AddString(hItem, (char *)"SD卡"); if(k_StorageGetStatus(MSD_DISK_UNIT) != 0) DROPDOWN_SetSel(hItem,1); else DROPDOWN_SetSel(hItem,0); hItemwarn = WM_GetDialogItem(pMsg->hWin, ID_TEXT_WARNING); TEXT_SetFont(hItemwarn,&GUI_FontHZ_Song_12); TEXT_SetTextColor(hItemwarn,GUI_RED); TEXT_SetText(hItemwarn, (char *)"警告:文件名不能为空!"); WM_HideWindow(hItemwarn); hIteminfo = WM_GetDialogItem(pMsg->hWin, ID_TEXT_INFO); TEXT_SetFont(hIteminfo,&GUI_FontHZ_Song_12); TEXT_SetTextColor(hIteminfo,GUI_RED); TEXT_SetText(hIteminfo, (char *)"文件保存成功!"); WM_HideWindow(hIteminfo); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_TILEPATH); //EDIT_SetDecMode(hItem, 24, 1,256, 0, 0); EDIT_SetFont(hItem,GUI_FONT_32_1); EDIT_SetMaxLen(hItem, 50); EDIT_EnableBlink(hItem, 600, 1); EDIT_SetInsertMode(hItem,1); //strcpy ((char*)str,(char *)path_studyfile); //strcat ((char*)str,"/"); //strcat ((char*)str,"A.wtr"); EDIT_SetText(hItem,"A"); cursorindex=EDIT_GetCursorCharPos(hItem); WM_SetFocus(hItem); hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_OK); BUTTON_SetFont(hItem,&GUI_FontHZ_Song_12); BUTTON_SetSkinClassic(hItem); BUTTON_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER); BUTTON_SetBkColor(hItem,BUTTON_CI_UNPRESSED, GUI_GREEN); BUTTON_SetFocussable(hItem,0);//不接收焦点 hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_CANCEL); BUTTON_SetFont(hItem,&GUI_FontHZ_Song_12); BUTTON_SetSkinClassic(hItem); BUTTON_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER); BUTTON_SetBkColor(hItem,BUTTON_CI_UNPRESSED, GUI_RED); BUTTON_SetFocussable(hItem,0);//不接收焦点 break; // USER START (Optionally insert additional message handling) // USER END case WM_KEY: //GUI_SendKeyMsg(GUI_KEY_TAB, 1);//改变输入焦点 break; case MY_MESSAGE_CLICK: GUI_SendKeyMsg(GUI_KEY_TAB, 1);//改变输入焦点 break; case MY_MESSAGE_OK: hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_TILEPATH); if(EDIT_GetNumChars(hItem)==0) { hItemwarn = WM_GetDialogItem(pMsg->hWin, ID_TEXT_WARNING); WM_ShowWindow(hItemwarn); break; } else { hItemwarn = WM_GetDialogItem(pMsg->hWin, ID_TEXT_WARNING); WM_HideWindow(hItemwarn); } hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_0); store_dev=DROPDOWN_GetSel(hItem); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_TILEPATH); EDIT_GetText(hItem, str, 51); if(store_dev == 0)//usb { if(sizeof(path_studyfile) < 50) strcpy ((char*)filename,(char *)path_studyfile); else strcpy ((char*)filename,(char *)path_Default); } if(store_dev == 1)//sd { if(sizeof(path_studyfile) < 50) strcpy ((char*)filename,(char *)path_studyfile_sd); else strcpy ((char*)filename,(char *)path_Default_sd); } strcat ((char*)filename,"/"); strcat ((char*)filename,str); strcat ((char*)filename,".wtr"); hIteminfo = WM_GetDialogItem(pMsg->hWin, ID_TEXT_INFO); TEXT_SetText(hIteminfo, "正在保存自学习文件!"); WM_ShowWindow(hIteminfo); GUI_Exec(); res=WT_StudyFiles_Write(filename);//0-ok, 1-hardware error, 2-file operate error, if(res==0) { hIteminfo = WM_GetDialogItem(pMsg->hWin, ID_TEXT_INFO); TEXT_SetText(hIteminfo, (char *)"文件保存成功!"); WM_ShowWindow(hIteminfo); } else { hIteminfo = WM_GetDialogItem(pMsg->hWin, ID_TEXT_INFO); TEXT_SetText(hIteminfo, "警告:保存失败,未检测到存储设备!"); WM_ShowWindow(hIteminfo); break; } GUI_EndDialog(pMsg->hWin,0); break; case MY_MESSAGE_DOWN://向右移动光标 hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_0); if(WM_HasFocus(hItem))//选择存储路径 { sel=DROPDOWN_GetSel(hItem); if(sel<1) { DROPDOWN_IncSel(hItem); } else //sel>=2 { DROPDOWN_SetSel(hItem,0); } } hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_TILEPATH); cursorpos=EDIT_GetCursorCharPos(hItem); NumChars = EDIT_GetNumChars(hItem); if(cursorpos <= (NumChars-1) ) { EDIT_SetCursorAtChar(hItem,cursorpos+1); EDIT_SetSel(hItem,cursorpos+1,cursorpos+1); cursorindex=EDIT_GetCursorCharPos(hItem); } //KeyLed_State.wheel=0; break; case MY_MESSAGE_UP://向左移动光标 hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_TILEPATH); cursorpos=EDIT_GetCursorCharPos(hItem); EDIT_SetCursorAtChar(hItem,cursorpos-1); EDIT_SetSel(hItem,cursorpos-1,cursorpos-1); cursorindex=EDIT_GetCursorCharPos(hItem); break; case MY_MESSAGE_WHEEL://处理滚轮事件 hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_TILEPATH); EDIT_SetCursorAtChar(hItem,cursorindex); index=KeyLed_State.wheel; if(KeyLed_State.wheel>=65 && KeyLed_State.wheel <130) index=KeyLed_State.wheel-65; if(KeyLed_State.wheel>=130 && KeyLed_State.wheel <195) index=KeyLed_State.wheel-130; if(KeyLed_State.wheel>=195) index=64; if(KeyLed_State.wheel<0 && KeyLed_State.wheel >= -65) index=KeyLed_State.wheel+65; if(KeyLed_State.wheel<-65 && KeyLed_State.wheel >= -130) index=KeyLed_State.wheel+130; if(KeyLed_State.wheel<-130) index=0; if(cursorindex==EDIT_GetCursorCharPos(hItem)) { EDIT_AddKey(hItem,GUI_KEY_DELETE); EDIT_AddKey(hItem,input_char[index]); cursorpos=EDIT_GetCursorCharPos(hItem); EDIT_SetSel(hItem,cursorpos-1,cursorpos-1); } break; case MY_MESSAGE_BUTTONDELETE://删除字符 hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_TILEPATH); if(WM_HasFocus(hItem)) { EDIT_AddKey(hItem,GUI_KEY_BACKSPACE); cursorindex=EDIT_GetCursorCharPos(hItem); } break; case WM_PAINT://绘制标题栏 GUI_SetColor(GUI_DARKBLUE); GUI_FillRect(0,0,480,22); GUI_SetColor(GUI_DARKGRAY); GUI_SetPenSize(6); GUI_DrawRect(0,0,480-2,222-2); break; default: WM_DefaultProc(pMsg); break; } }