硬汉嵌入式论坛

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

[emWin] 请教下使用GUI_StoreKeyMsg这个函数不能够显示" ! 字符?

[复制链接]

613

主题

3067

回帖

4926

积分

至尊会员

积分
4926
发表于 2018-8-9 22:58:49 | 显示全部楼层 |阅读模式
本帖最后由 hpdell 于 2018-8-10 09:49 编辑

            if( (c == 34)    // "   
                || (c == 33))  // !
                MULTIEDIT_AddText(hMulti,(const char*)&c);    // 使用这个方法可以显示  字符编码为 33、34的字符
            else
            {
// 使用这个方法不能够显示 字符 编码为 33、34的字符 ???????????????????????????????????????
                GUI_StoreKeyMsg(c, 1);                //把消息存进键盘缓冲器,按下状态,
                GUI_StoreKeyMsg(c, 0);                //把消息存进键盘缓冲器,松开状态
            }



除了 上述的 2个字符外,其他的字符都可以
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107442
QQ
发表于 2018-8-10 09:28:24 | 显示全部楼层
没问题,0x20到0xFF之间的都可以正常使用。

你可以函数GUI_GetKey获取你是否存入。
回复

使用道具 举报

613

主题

3067

回帖

4926

积分

至尊会员

积分
4926
 楼主| 发表于 2018-8-10 09:49:19 | 显示全部楼层
本帖最后由 hpdell 于 2018-8-10 09:57 编辑
eric2013 发表于 2018-8-10 09:28
没问题,0x20到0xFF之间的都可以正常使用。

你可以函数GUI_GetKey获取你是否存入。


好的,我试试,
另外请教下,这个存储方法貌似不能够存入中文字符,我试过存入中文字符时,没有显示,我的存储中文字符的方法是

如中文的 “ 这 ” , 字符  
unicode编码  
8FD9

char  cH, cL;

cH = 0x8F;
cL = 0xD9;

GUI_StoreKeyMsg(cH , 1);        //把消息存进键盘缓冲器,按下状态
GUI_StoreKeyMsg(cL , 1);

GUI_StoreKeyMsg(cH, 0);        //把消息存进键盘缓冲器,松开状态

GUI_StoreKeyMsg(cL , 0);

是不是我的这个存储 中文的 方法不对呀 ??




回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107442
QQ
发表于 2018-8-10 12:05:24 | 显示全部楼层
hpdell 发表于 2018-8-10 09:49
好的,我试试,
另外请教下,这个存储方法貌似不能够存入中文字符,我试过存入中文字符时,没有显示, ...

这种的一般存储UTF-8编码做传输,你试试。
回复

使用道具 举报

613

主题

3067

回帖

4926

积分

至尊会员

积分
4926
 楼主| 发表于 2018-8-10 14:17:14 | 显示全部楼层
eric2013 发表于 2018-8-10 12:05
这种的一般存储UTF-8编码做传输,你试试。

好的,多谢多谢了啊
回复

使用道具 举报

613

主题

3067

回帖

4926

积分

至尊会员

积分
4926
 楼主| 发表于 2018-8-10 21:25:24 | 显示全部楼层
eric2013 发表于 2018-8-10 09:28
没问题,0x20到0xFF之间的都可以正常使用。

你可以函数GUI_GetKey获取你是否存入。

你好,仿真时,已经把 字符 " 存进去了,读出来也是这个值,但是不知为何不能够显示

仿真截图如下:
22.png

这个 0x22 就是字符 " 的码值了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107442
QQ
发表于 2018-8-11 01:17:49 | 显示全部楼层
hpdell 发表于 2018-8-10 21:25
你好,仿真时,已经把 字符 " 存进去了,读出来也是这个值,但是不知为何不能够显示

仿真截图如下:

简单调用函数GUI_DispString函数显示是否正常。
回复

使用道具 举报

613

主题

3067

回帖

4926

积分

至尊会员

积分
4926
 楼主| 发表于 2018-8-13 11:05:23 | 显示全部楼层
eric2013 发表于 2018-8-11 01:17
简单调用函数GUI_DispString函数显示是否正常。

调用 GUI_DispString 这个可以显示
回复

使用道具 举报

11

主题

30

回帖

63

积分

初级会员

积分
63
发表于 2019-7-19 19:45:46 | 显示全部楼层
hpdell 发表于 2018-8-13 11:05
调用 GUI_DispString 这个可以显示

请问你最后解决了吗,我也遇到这个问题了
回复

使用道具 举报

613

主题

3067

回帖

4926

积分

至尊会员

积分
4926
 楼主| 发表于 2019-7-21 11:56:59 | 显示全部楼层
小韩同学 发表于 2019-7-19 19:45
请问你最后解决了吗,我也遇到这个问题了

没有哇,你有其他的什么好方法没有啊 ?
回复

使用道具 举报

613

主题

3067

回帖

4926

积分

至尊会员

积分
4926
 楼主| 发表于 2019-7-21 22:22:33 | 显示全部楼层
小韩同学 发表于 2019-7-19 19:45
请问你最后解决了吗,我也遇到这个问题了

貌似使用 编辑框 的话就会出现这个问题,

如果使用文本框显示就完全正常,这说明我们的程序应该是没有什么问题吧 ??

问题应该就出现在 编辑框的控件上,只是目前不知道控件内部他们是如何处理的
回复

使用道具 举报

11

主题

30

回帖

63

积分

初级会员

积分
63
发表于 2019-7-22 09:47:06 | 显示全部楼层
hpdell 发表于 2019-7-21 22:22
貌似使用 编辑框 的话就会出现这个问题,

如果使用文本框显示就完全正常,这说明我们的程序应该是没有什 ...


                if(c==0x22)
                {
                        GUI_SendKeyMsg(0x122, 1); //'"'
                }
                else if(c==0x21)
                {
                        GUI_SendKeyMsg(0x121, 1); //'!'
                }
我最后这么写,可以了
回复

使用道具 举报

613

主题

3067

回帖

4926

积分

至尊会员

积分
4926
 楼主| 发表于 2019-7-22 22:33:29 | 显示全部楼层
小韩同学 发表于 2019-7-22 09:47
if(c==0x22)
                {
                        GUI_SendKeyMsg(0x122, 1) ...

你是如何想到使用这个方法的 ?

有什么思路是你想起这个方法吗 ???
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-1 06:59 , Processed in 0.249237 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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