硬汉嵌入式论坛

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

[emWin] emwin按键处理

[复制链接]

26

主题

71

回帖

149

积分

初级会员

积分
149
发表于 2024-11-23 14:34:24 | 显示全部楼层 |阅读模式
static void Key_process(void *p_arg)
{
        uint8_t  ucKeyCode;
        (void)p_arg;                   /* 避免编译器报警 */
        while (1)
        {                  
                ucKeyCode = bsp_GetKey();
               
                if(ucKeyCode != KEY_NONE)
                {
                        switch (ucKeyCode)
                        {
                                case KEY_DOWN_K1:                       
                                        GUI_SendKeyMsg(GUI_KEY_F1, 1);
                                        break;

                                case KEY_DOWN_K2:                       
                                        GUI_SendKeyMsg(GUI_KEY_F2, 1);
                                        break;
                               default:
                                        /* 其它的键值不处理 */
                                        break;
                        }
                               
                }
        }
}

对话框窗口回调消息里
        case WM_KEY:
                switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key)
            {

                case GUI_KEY_F1:
                     GUI_EndDialog(pMsg->hWin, 0);
                    CreateFramewin_Main();
                    break;
               case GUI_KEY_F2:
                     GUI_EndDialog(pMsg->hWin, 0);
                    CreateFramewin();
                    break;

            }
                               
仿真能进到按键case KEY_DOWN_K1/2里,窗口处理case WM_KEY进不去,收不到消息咋搞啊

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116197
QQ
发表于 2024-11-24 10:57:52 | 显示全部楼层
注意这两个问题。

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

回复

使用道具 举报

26

主题

71

回帖

149

积分

初级会员

积分
149
 楼主| 发表于 2024-11-25 17:25:50 | 显示全部楼层
eric2013 发表于 2024-11-24 10:57
注意这两个问题。

1、控件被聚焦的情况下,键盘消息优先发给控件,然后才发给窗口回调消息中的WM_KEY

发送的是自定义的消息,控件不会接受,窗口也没进入WM_KEY里
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116197
QQ
发表于 2024-11-26 08:10:11 | 显示全部楼层
ZYG_GYZ 发表于 2024-11-25 17:25
发送的是自定义的消息,控件不会接受,窗口也没进入WM_KEY里

那就发窗口自定义消息吧,这个一定可以收到
回复

使用道具 举报

26

主题

71

回帖

149

积分

初级会员

积分
149
 楼主| 发表于 2024-11-28 17:58:27 | 显示全部楼层
eric2013 发表于 2024-11-26 08:10
那就发窗口自定义消息吧,这个一定可以收到

收不到啊
主页面有两个按钮控件,触摸点击在回调里关闭当前页创建菜单页正常
                                   按键点击执行和回调里一样的函数,界面对应标志位都改了,但是界面就是创不出来
回复

使用道具 举报

26

主题

71

回帖

149

积分

初级会员

积分
149
 楼主| 发表于 2024-11-28 18:02:46 | 显示全部楼层
ZYG_GYZ 发表于 2024-11-28 17:58
收不到啊
主页面有两个按钮控件,触摸点击在回调里关闭当前页创建菜单页正常
                         ...

仿真跟踪执行的函数创建页面的句柄啥的都正常,界面就是不改变
测试按键点击后执行创建其他界面都正常,触摸也正常。

从其他页面触摸返回这个菜单页也正常能创建,就是从主页面按键点击创菜单页不行
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 00:14 , Processed in 0.240441 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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