硬汉嵌入式论坛

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

[emWin] 模拟器上键盘发送键值有效设置

[复制链接]

268

主题

597

回帖

1401

积分

至尊会员

积分
1401
发表于 2017-6-10 10:59:40 | 显示全部楼层 |阅读模式
用电脑键盘对EDIT操作时,遇到点问题。
我想通过TAB键对页面内的多个EDIT进行编辑选择,处理代码如下:

case WM_KEY:
        {
            int key = ((WM_KEY_INFO *)(pMsg->Data.p))->Key;
            
            switch(key)
            {
                case GUI_KEY_TAB:
                {
                    focus_param_id++;
                    if(focus_param_id == PAGE_PARAM_NUM)
                    {
                        focus_param_id = 0;
                    }
                    
                    WM_SetFocus(WM_GetDialogItem(hWin,GUI_ID_EDIT0 + focus_param_id));
                }
                break;
            }
        }
        break;
但是操作时,按下TAB键后这个代码就有效了,弹起TAB时,也有效
也就是一次单击TAB键,这段代码被执行了两次。
有没有什么方法可以,只在按键被弹起时,才认为按键有效呢?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115749
QQ
发表于 2017-6-10 11:06:35 | 显示全部楼层
这个还不太好改,电脑的键盘有按下,松手,连按和组合键。emWin应该是把按键的状态读取和发送任务给封装起来了。

搜下WIN32 API中有没有可以获取按键当前状态的函数。兴许有解决办法。
回复

使用道具 举报

268

主题

597

回帖

1401

积分

至尊会员

积分
1401
 楼主| 发表于 2017-6-10 11:21:58 | 显示全部楼层

回 eric2013 的帖子

eric2013:这个还不太好改,电脑的键盘有按下,松手,连按和组合键。emWin应该是把按键的状态读取和发送任务给封装起来了。

搜下WIN32 API中有没有可以获取按键当前状态的函数。兴许有解决办法。

 (2017-06-10 11:06) 
TAB键是EDIT不支持的响应按键,支持的响应按键的话,好像都是按下就有效
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-15 12:26 , Processed in 0.421288 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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