硬汉嵌入式论坛

 找回密码
 立即注册
查看: 23|回复: 0
收起左侧

[emWin] 关于EDIT如何输入俄语字符

[复制链接]

11

主题

16

回帖

49

积分

初级会员

积分
49
发表于 昨天 16:05 | 显示全部楼层 |阅读模式
求助大佬,下面这是项目里设置设备名称的代码,目前只能设置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;
    }
}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-5-16 06:36 , Processed in 0.200756 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表