硬汉嵌入式论坛

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

[emWin] emwin只有物理按键该怎么操作

[复制链接]

8

主题

136

回帖

160

积分

初级会员

积分
160
发表于 2022-12-27 16:03:59 | 显示全部楼层 |阅读模式
请教下emwin在没有触摸屏只有实体按键该怎么操作, 目前使用GUI_SendKeyMsg()函数发送键值, 但遇到个问题:
比如主页面A下创建一个对话框B, 键值怎么定位到B页面而不是A页面, 尝试用WM_SetFocus(B对话框的句柄), 这样似乎不行
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106904
QQ
发表于 2022-12-27 16:19:35 | 显示全部楼层
两种方式
1、第1种就是楼主这种用法,聚焦式用法,TAB键消息切换聚焦,不同控件聚焦情况支持的按键消息不同。经典的例子是这个ATM机的:
https://www.armbbs.cn/forum.php?mod=viewthread&tid=5595

然后注意下面两个帖子内容:
(1)控件被聚焦的情况下,键盘消息优先发给控件,然后才发给窗口回调消息中的WM_KEY
https://www.armbbs.cn/forum.php?mod=viewthread&tid=23690

(2)关于emWin控件,窗口,对话框等聚焦问题总结
https://www.armbbs.cn/forum.php?mod=viewthread&tid=82182

2、还有一种用法是发送窗口自定义消息,这个案例有使用
第5期:监护仪界面设计
https://www.armbbs.cn/forum.php?mod=viewthread&tid=5599

回复

使用道具 举报

8

主题

136

回帖

160

积分

初级会员

积分
160
 楼主| 发表于 2022-12-27 16:30:13 | 显示全部楼层
硬汉哥速速啊, 我在尝试使用第二种方法去实现
回复

使用道具 举报

8

主题

136

回帖

160

积分

初级会员

积分
160
 楼主| 发表于 2022-12-28 16:06:00 | 显示全部楼层
现在用第一种方法确实可以实现了, 这里面坑还是挺多的, 首先必须要有case WM_KEY, 如果没有添加此代码, 程序回调函数将会执行父窗口的case WM_KWY, 其次如果控件本身可以接收的GUI_KEY_XXX,就不会进入WM_KEY
回复

使用道具 举报

5

主题

519

回帖

534

积分

金牌会员

积分
534
发表于 2022-12-29 08:09:45 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-9 11:07 , Processed in 0.284102 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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