硬汉嵌入式论坛

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

[emWin] 物理按键 MUlTIPAGE 小工具换页问题

[复制链接]

10

主题

20

回帖

50

积分

初级会员

螺旋是时间最美的曲线。

积分
50
发表于 2016-6-15 08:51:14 | 显示全部楼层 |阅读模式
物理按键 :

                case GUI_KEY_UP:                /*方向上*/
                  GUI_SendKeyMsg(GUI_KEY_UP, 1);
                    break;

                case GUI_KEY_DOWN:              /*方向下*/
                                  GUI_SendKeyMsg(GUI_KEY_DOWN, 1);
                    break;

                case GUI_KEY_LEFT:              /*方向左*/
                                 GUI_SendKeyMsg(GUI_KEY_LEFT, 1);
                    break;

                case GUI_KEY_RIGHT:              /*方向右*/
                  GUI_SendKeyMsg(GUI_KEY_RIGHT, 1);
                    break;

                case GUI_KEY_PGUP:              /*+*/
                    if(KeyPageSt==0)
                    GUI_SendKeyMsg(GUI_KEY_PGUP, 0);//
                    else
                    GUI_SendKeyMsg(GUI_KEY_PGUP, 1);
                    break;
                case GUI_KEY_PGDOWN:            /*-*/
                    if(KeyPageSt==0)
                    GUI_SendKeyMsg(GUI_KEY_PGDOWN, 0);
                    else
                    GUI_SendKeyMsg(GUI_KEY_PGDOWN, 1);
                    break;
创建如下页面:

static const GUI_WIDGET_CREATE_INFO _aYXDialogCreate[] = {
  { FRAMEWIN_CreateIndirect,"",ID_FRAMEWIN_0, 0, 0, 320, 240,0,0},
  { MULTIPAGE_CreateIndirect, "Multipage", ID_MULTIPAGE_0, 0, 2, 314, 204, 0, 0x0, 0 },
};
static const GUI_WIDGET_CREATE_INFO _aYX_1_DialogCreate[] = {
  { WINDOW_CreateIndirect, &quot1", ID_WINDOW_0, 0, 80, 310, 180, 0, 0x0, 0 },
  { LISTVIEW_CreateIndirect, "Listview1", ID_LISTVIEW_0, 0, 0, 310, 175, 0, 0x0, 0 },
};
static const GUI_WIDGET_CREATE_INFO _aYX_2_DialogCreate[] = {
  { WINDOW_CreateIndirect, &quot2", ID_WINDOW_1, 0, 80, 310, 180, 0, 0x0, 0 },
  { LISTVIEW_CreateIndirect, "Listview2", ID_LISTVIEW_1, 0, 0, 310, 175, 0, 0x0, 0 },
};
static const GUI_WIDGET_CREATE_INFO _aYX_3_DialogCreate[] = {
  { WINDOW_CreateIndirect, &quot3", ID_WINDOW_2, 0, 80, 310, 180, 0, 0x0, 0 },
  { LISTVIEW_CreateIndirect, "Listview3", ID_LISTVIEW_2, 0, 0, 310, 175, 0, 0x0, 0 },
};
static const GUI_WIDGET_CREATE_INFO _aYX_4_DialogCreate[] = {
  { WINDOW_CreateIndirect, &quot4", ID_WINDOW_3, 0, 80, 310, 180, 0, 0x0, 0 },
  { LISTVIEW_CreateIndirect, "Listview4", ID_LISTVIEW_3, 0, 0, 310, 175, 0, 0x0, 0 },
};
问题1:FRAMEWIN创建后MULTIPAGE有4个多页窗口每个里面有LISTVIEW控件,窗口打开后
            总是聚焦在LISTVIEW控件非MULTIPAGE控件,焦点设置也不起作用,PAUP/PADOWN
           按键不响应page switch(焦点在listview里),后来通过GUI_SendKeyMsg(GUI_KEY_PGUP, 0)
           方式把不识别消息传到父窗口通过手动更改MULTIPAGE_SelectPage来实现。
问题2:以上MULTIPAGE_SelectPage后发现,窗口是切换了消息响应还是在P1,焦点也在P1,当我选择P2
退出窗口重入焦点在P2了,消息响应还在P1。
难到我的窗口管理还是不理解?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115863
QQ
发表于 2016-6-16 11:08:32 | 显示全部楼层
切换到P2后,设置聚焦到这个界面没有。
回复

使用道具 举报

10

主题

20

回帖

50

积分

初级会员

螺旋是时间最美的曲线。

积分
50
 楼主| 发表于 2016-6-16 11:40:12 | 显示全部楼层

回 eric2013 的帖子

eric2013:切换到P2后,设置聚焦到这个界面没有。 (2016-06-16 11:08) 
  case WM_USER:
      MULTIPAGE_SelectPage( hMultiPage,pMsg->Data.v);//设置选择页
      WM_SetFocus(MULTIPAGE_GetWindow(hMultiPage,pMsg->Data.v));//设置焦点
          页切换了焦点没变。
回复

使用道具 举报

10

主题

20

回帖

50

积分

初级会员

螺旋是时间最美的曲线。

积分
50
 楼主| 发表于 2016-6-16 17:02:01 | 显示全部楼层
解决了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115863
QQ
发表于 2016-6-16 17:29:13 | 显示全部楼层

回 zhouxinjie1 的帖子

zhouxinjie1:解决了 (2016-06-16 17:02) 
解决了就好
回复

使用道具 举报

10

主题

20

回帖

50

积分

初级会员

螺旋是时间最美的曲线。

积分
50
 楼主| 发表于 2016-6-17 09:35:31 | 显示全部楼层
焦点嵌套了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-24 02:48 , Processed in 0.277511 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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