硬汉嵌入式论坛

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

[有问必答] 外接键盘触发事件的逻辑关系不懂

[复制链接]

36

主题

70

回帖

178

积分

初级会员

积分
178
发表于 2015-7-1 16:45:47 | 显示全部楼层 |阅读模式
以下程序是STemWin教程中的键盘输入教程,大概在307页左右,我想问的是第二段程序如果按下K3键之后会跳转到第一段程序所在的界面(此时为当前界面)上吗?

另外,V3板子有没有类似相关的程序,外部键盘的,现在很急,我试了下其他的板子,返回不到case WM_KEY:这个地方,但是如果返回GUI_SendKeyMsg(GUI_KEY_TAB, 1);也可以在界面上切换焦点,我看了教程感觉理解了,是实际操作了下感觉还是不大清楚
(1)
case WM_KEY:
switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key)
{
case GUI_KEY_ESCAPE:
GUI_EndDialog(hDlg, 1);
break;
case GUI_KEY_ENTER:
GUI_EndDialog(hDlg, 0);
break;
}
break;


(2)

switch (ucKeyCode)
{
case KEY_DOWN_K1:     /* K1键按下 实现截图*/   (1)
BSP_OS_SemPost(&SEM_SYNCH);
break;
case KEY_DOWN_K2:     /* K2键按下 实现TAB按键的功能*/   (2)
GUI_SendKeyMsg(GUI_KEY_TAB, 1);
break;
case KEY_DOWN_K3:     /* K3键按下 实现CANCEL的功能 */   (3)
GUI_SendKeyMsg(GUI_KEY_ESCAPE, 1);
break;
回复

使用道具 举报

354

主题

2164

回帖

3231

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3231
发表于 2015-7-1 17:46:31 | 显示全部楼层
这个就叫回调机制。。。。

按键识别后,存储一个消息到内核程序中。内核程序会判断当前是哪个界面,哪个窗口,然后把这个消息发送到这个窗口。

这个消息的传递,排列,选择,都是emwin来处理的,没有公开源码。理论上,应该是在心跳周期中都会查询检查一遍的。
回复

使用道具 举报

36

主题

70

回帖

178

积分

初级会员

积分
178
 楼主| 发表于 2015-7-1 18:56:52 | 显示全部楼层

回 caicaptain2 的帖子

caicaptain2:这个就叫回调机制。。。。

按键识别后,存储一个消息到内核程序中。内核程序会判断当前是哪个界面,哪个窗口,然后把这个消息发送到这个窗口。

这个消息的传递,排列,选择,都是emwin来处理的,没有公开源码。理论上,应该是在心跳周期中都会查询检查一遍的。
....... (2015-07-01 17:46) 
嗯,回调我明白,就是说它无法返回到case WM_KEY:,要不然这个switch case语句就没什么用了不是吗?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-13 19:27 , Processed in 0.588233 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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