|
|
求助大佬,下面这是项目里设置设备名称的代码,目前只能设置ASCII里的字符,有没有办法添加俄语的一些字符呢?目前只能设置EDIT_MODE_ASCII和EDIT_MODE_HEX这两种模式
//========================================================================
void _cbNameInput(WM_MESSAGE * pMsg)
{
WM_HWIN hItem;
LanguageUnLockInput_t sData;
switch (pMsg->MsgId)
{
case WM_PAINT:
{
GUI_RECT Rect;
GUI_SetColor(VIEW_TITLE_COLOR);
GUI_SetBkColor(VIEW_TITLE_BKCOLOR);
WM_GetClientRect(&Rect);
Rect.y1 = VIEW_TITLE_YSIZE - 1 - 1;
l_snprintf((char *)g_DispBuf,sizeof(g_DispBuf)," < %s",(const char *)GetLanguageString(STR_DEV_NAME));
GUI_DispStringInRectFill((char *)g_DispBuf,&Rect,GUI_TA_LEFT | GUI_TA_VCENTER);
GUI_SetColor(VIEW_TITLE_LINE_COLOR);
GUI_DrawHLine(VIEW_TITLE_YSIZE - 1,0,Rect.x1);
}
break;
case WM_INIT_DIALOG:
{
// Initialization of 'Edit'
WINDOW_SetBkColor(pMsg->hWin,VIEW_TITLE_BKCOLOR);
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
memset(&sData,0,sizeof(sData));
EDITBAR_SetUserData(hItem,&sData,sizeof(sData));
EDITBAR_SetMode(hItem,EDIT_MODE_ASCII);
EDITBAR_SetMaxLen(hItem,sizeof(g_GUIPara.DevName) - 1);
EDITBAR_SetValueBuf(hItem,(char *)&g_GUIPara.DevName[0],sizeof(g_GUIPara.DevName) - 1);
EDITBAR_SetFont(hItem, &GUI_DEFAULT_FONT);
EDITBAR_SetBkColor(hItem,VIEW_TITLE_BKCOLOR);
EDITBAR_SetColor(hItem, GUI_BLUE);
EDITBAR_SetCursorAtChar(hItem,0);
}
break;
case WM_KEY:
{
INT32U Key;
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
if(((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt)
{
Key = ((WM_KEY_INFO*)(pMsg->Data.p))->Key;
if(KEY_LOK == Key)
{
char Buf[sizeof(g_GUIPara.DevName)];
EDITBAR_GetValueBuf(hItem,(char *)&Buf[0],sizeof(Buf) - 1);
Buf[sizeof(Buf) - 1] = '\0';
SetDeviceName(Buf);
g_CurPageId = g_PrePageId;
TurnToFocus();
}
else if(KEY_CH == Key)
{
g_CurPageId = g_PrePageId;
TurnToFocus();
}
}
}
break;
default: WM_DefaultProc(pMsg); break;
}
}
|
|