emWin(ucGui) Edit控件數值模式出現負數值編輯時,如果鍵盤按鍵全可以設置獨立的"-","+"鍵,這樣可以正常編輯正數和負數,但是要沒有設置這兩個鍵,編輯Edit的數值會比較麻煩,可以使用"上"鍵和"下"鍵修改符號,但是光標無法移動到后面的數值位,必須借助"左"鍵和"右"鍵來移動光標,在嵌入式里的按鍵比較有限制,如果不單獨設立"+","+","左","右"鍵,這時只能通過代碼來完成移位,方法是,修改符號位的同時手動移動光標:
/*********************************************************************
*
* cbEdit 編輯控件回調
*/
static void cbEdit0(WM_MESSAGE * pMsg) {
switch (pMsg->MsgId) {
case WM_KEY:
if(((WM_KEY_INFO *)(pMsg->Data.p))->PressedCnt != 0)
break;
switch (((WM_KEY_INFO *)(pMsg->Data.p))->Key){
case GUI_KEY_ENTER:
pretreatTemperature = EDIT_GetValue(widgetsItemBuf[0]);
WM_SetFocus(widgetsItemBuf[1]);
break;
case GUI_KEY_UP:
case GUI_KEY_DOWN:
if(((WM_KEY_INFO *)(pMsg->Data.p))->PressedCnt == 0)
if(EDIT_GetCursorCharPos(widgetsItemBuf[0]) == 0)
EDIT_SetCursorAtChar(widgetsItemBuf[0],1);
break;
}
break;
}
EDIT_Callback(pMsg);
}