硬汉嵌入式论坛

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

[emWin] FRAMEWIN框架窗口不接受按键消息?模态窗口也不接受按键消息??

[复制链接]

79

主题

191

回帖

428

积分

高级会员

积分
428
发表于 2014-12-28 16:34:28 | 显示全部楼层 |阅读模式
如题,建立了两个窗口,一个是FRAMEWIN框架窗口,一个使用WM_CreateWinAsChild()建立的普通窗口,两个窗口都用WM_MakeModal()模态化,结果两个窗口都无法接受按键输入。去掉模态属性,FRAMEWIN框架窗口还是无法接受按键输入,而用WM_CreateWinAsChild()创建的普通窗口却可以正常接收按键消息。
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2014-12-28 17:58:54 | 显示全部楼层
用GUI_MessageBox("Error","Error Message",GUI_MESSAGEBOX_CF_MODAL);创建的消息框,可以看到焦点已经聚焦到了“OK”按钮上,但按键没反应,看它的回调函数里有:
case WM_KEY:
      {
        int Key = ((const WM_KEY_INFO*)(pMsg->Data.p))->Key;
        if (((const WM_KEY_INFO*)(pMsg->Data.p))-&gtressedCnt) {
          switch (Key) {
                        case GUI_KEY_ESCAPE:
            GUI_EndDialog(hWin, 1);             /* End dialog with return value 1 if <ESC> is pressed */
            break;
          case GUI_KEY_ENTER:
            GUI_EndDialog(hWin, 0);             /* End dialog with return value 0 if <ENTER> is pressed */
                    break;
          }
        }
      }
   break;

也就是说消息框控件本身是处理按键消息的,我不知道为什么没反应,我用的屏不是触摸的,只能按键控制,除了这个控件无反应外,其它控件使用按键都很正常。。。。。郁闷。。。。。。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2014-12-28 21:37:12 | 显示全部楼层

回 天马行空 的帖子

天马行空:用GUI_MessageBox("Error","Error Message",GUI_MESSAGEBOX_CF_MODAL);创建的消息框,可以看到焦点已经聚焦到了“OK”按钮上,但按键没反应,看它的回调函数里有:
case WM_KEY:
      {
       .. (2014-12-28 17:58) 
在这个消息里面做个串口打印什么的,看看执行里面的函数了没有。
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2014-12-29 14:46:02 | 显示全部楼层
调用GUI_ExecCreatedDialog(hWin)把窗口设为阻塞状态,键盘就失去反应。。。。。。。还在查找原因。。。。。
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2014-12-29 16:49:10 | 显示全部楼层

回 天马行空 的帖子

天马行空:调用GUI_ExecCreatedDialog(hWin)把窗口设为阻塞状态,键盘就失去反应。。。。。。。还在查找原因。。。。。 (2014-12-29 14:46) 
我也碰到了这样子的问题,只好放弃了messagebox了。。。
估计得自己重定义回调函数。。。
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2014-12-29 16:56:59 | 显示全部楼层

回 天马行空 的帖子

天马行空:用GUI_MessageBox("Error","Error Message",GUI_MESSAGEBOX_CF_MODAL);创建的消息框,可以看到焦点已经聚焦到了“OK”按钮上,但按键没反应,看它的回调函数里有:
case WM_KEY:
      {
       .. (2014-12-28 17:58) 
我用的emwin,看不到回调函数原型哦。。。你用的ucgui么?
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2014-12-29 18:51:00 | 显示全部楼层
UCGUI
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 23:38 , Processed in 0.206804 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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