硬汉嵌入式论坛

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

[emWin] 请问下,怎么设计滑屏,其中每个屏幕都有活动元素

[复制链接]

17

主题

63

回帖

114

积分

初级会员

积分
114
发表于 2018-10-23 10:26:14 | 显示全部楼层 |阅读模式
本帖最后由 ssis909 于 2018-10-24 16:54 编辑

总共5个页面,平时显示第一个页面,通过左右滑动切换其他页面,但是每个页面都有控件和元素,比如不断变化的数值,不断变化的曲线,请问可以实现吗?


---2018-10-24-恢复使用标志位完成此功能----
demo.gif
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115777
QQ
发表于 2018-10-23 10:46:42 | 显示全部楼层
滑屏完全没问题的,看我这个视频效果:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=17330

而你说的不断变化的数值,是什么样的效果,是不是一些Graph之类的控件也在上面。
回复

使用道具 举报

17

主题

63

回帖

114

积分

初级会员

积分
114
 楼主| 发表于 2018-10-23 10:52:56 | 显示全部楼层
本帖最后由 ssis909 于 2018-10-23 10:55 编辑

对的,页面有Graphic控件,有TEXT控件,有Slider控件,类似微信界面,可以从通讯录界面滑到发现界面,其中通讯录界面和发现界面均可以上下滑动,点击
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115777
QQ
发表于 2018-10-23 11:33:08 | 显示全部楼层
ssis909 发表于 2018-10-23 10:52
对的,页面有Graphic控件,有TEXT控件,有Slider控件,类似微信界面,可以从通讯录界面滑到发现界面,其中通讯 ...

没问题,当前可以先测试滑动效果。
回复

使用道具 举报

17

主题

63

回帖

114

积分

初级会员

积分
114
 楼主| 发表于 2018-10-23 12:24:44 | 显示全部楼层
本帖最后由 ssis909 于 2018-10-23 12:26 编辑
eric2013 发表于 2018-10-23 11:33
没问题,当前可以先测试滑动效果。

OK我试试               
回复

使用道具 举报

17

主题

63

回帖

114

积分

初级会员

积分
114
 楼主| 发表于 2018-10-23 13:47:59 | 显示全部楼层
本帖最后由 ssis909 于 2018-10-23 13:58 编辑
eric2013 发表于 2018-10-23 11:33
没问题,当前可以先测试滑动效果。

demo 1.gif

试过了,不行,我在上下滑屏结束后只要一松开鼠标就会执行按钮弹起回调函数,怎么判断是滑屏而不执行按钮回调?我知道有个函数BUTTON_SetReactOnLevel可以让按钮对水平作反应,但对这个垂直滑屏的不行.这样的话,向右切换页面的话,肯定会执行按钮弹起回调,而不是切换其他页面
回复

使用道具 举报

12

主题

104

回帖

140

积分

初级会员

积分
140
发表于 2018-10-23 13:56:00 | 显示全部楼层
ssis909 发表于 2018-10-23 13:47
试过了,不行,我在上下滑屏结束后只要一松开鼠标就会执行按钮弹起回调函数,怎么判断是滑屏而不执行按 ...

大哥这个用什么画的?窗口+按键?如果用那个SwipeList就可以实现同样效果,
回复

使用道具 举报

17

主题

63

回帖

114

积分

初级会员

积分
114
 楼主| 发表于 2018-10-23 14:03:40 | 显示全部楼层
cz123123 发表于 2018-10-23 13:56
大哥这个用什么画的?窗口+按键?如果用那个SwipeList就可以实现同样效果,

是啊,我用的5.12版本,没有SwipeList控件,就用窗口和按钮实现的
回复

使用道具 举报

12

主题

104

回帖

140

积分

初级会员

积分
140
发表于 2018-10-23 14:05:52 | 显示全部楼层
ssis909 发表于 2018-10-23 14:03
是啊,我用的5.12版本,没有SwipeList控件,就用窗口和按钮实现的

那改改版本应该可以啦。。用那么久的版本。。,,触发条件是判断按键弹起?
回复

使用道具 举报

17

主题

63

回帖

114

积分

初级会员

积分
114
 楼主| 发表于 2018-10-23 14:18:40 | 显示全部楼层
cz123123 发表于 2018-10-23 14:05
那改改版本应该可以啦。。用那么久的版本。。,,触发条件是判断按键弹起?

好的,我试试SwipeList这个
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115777
QQ
发表于 2018-10-23 14:45:42 | 显示全部楼层
ssis909 发表于 2018-10-23 13:47
试过了,不行,我在上下滑屏结束后只要一松开鼠标就会执行按钮弹起回调函数,怎么判断是滑屏而不执行按 ...

这个使用Montion功能也是可以的,我的二代示波器垂直滑动就是这么实现的

http://www.armbbs.cn/forum.php?mod=viewthread&tid=45785
回复

使用道具 举报

12

主题

104

回帖

140

积分

初级会员

积分
140
发表于 2018-10-23 15:12:13 | 显示全部楼层
eric2013 发表于 2018-10-23 14:45
这个使用Montion功能也是可以的,我的二代示波器垂直滑动就是这么实现的

http://www.armbbs.cn/for ...

硬汉大佬,,我也刚好是自己做的那个跟上面楼主一样的滑动,也是遇到这个问题,不过我解决的时候是靠标志位解决的。不知道大佬咋解决的,,我也用montion啊
switch (pInfo->Cmd)
                        {
                                /* Motion功能初始化,设置X方向和Y方向都支持滑动 */
                                case WM_MOTION_INIT:
                                        pInfo->Flags =   WM_CF_MOTION_Y ;
                                        pInfo->SnapY = 1;
                                        break;
                                case WM_MOTION_MOVE:
                                        if(pInfo->pState->Pressed == 1)
                                        {
                                                Pre_y += (pInfo->dy*2);
                                          if(Pre_y>80) Pre_y=77;
                                                else if(Pre_y<-450)Pre_y=-450;
                                                printf("Pre_y=%d\r\n",Pre_y);//此处加个打印就会很顺滑,原因不明
                                                WM_MoveTo(hWin, 0, Pre_y);
                                        }
                                        break;
                                case WM_MOTION_GETPOS:
                                pInfo->xPos = Pre_y;
                                if(Pre_y==-450)
                                        CreatePrompt_mgs(WM_GetParent(WM_GetParent(pMsg->hWin)),320,10,"亲,已到达底部",GREEN_COLOR);
                                break;
                        }
回复

使用道具 举报

17

主题

63

回帖

114

积分

初级会员

积分
114
 楼主| 发表于 2018-10-23 15:35:26 | 显示全部楼层
cz123123 发表于 2018-10-23 15:12
硬汉大佬,,我也刚好是自己做的那个跟上面楼主一样的滑动,也是遇到这个问题,不过我解决的时候是靠标志 ...

我后来也用标志位解决了这个问题,但是这肯定不是最好的办法
回复

使用道具 举报

12

主题

104

回帖

140

积分

初级会员

积分
140
发表于 2018-10-23 15:59:26 | 显示全部楼层
ssis909 发表于 2018-10-23 15:35
我后来也用标志位解决了这个问题,但是这肯定不是最好的办法

是啊。而且我滑动还要重绘点击的那一行,,就会卡卡的,不知道大哥咋解决的?。那个箭头移动是TEXT?
回复

使用道具 举报

17

主题

63

回帖

114

积分

初级会员

积分
114
 楼主| 发表于 2018-10-24 10:26:35 | 显示全部楼层
cz123123 发表于 2018-10-23 15:59
是啊。而且我滑动还要重绘点击的那一行,,就会卡卡的,不知道大哥咋解决的?。那个箭头移动是TEXT?

箭头是图片,重绘即可,问下可不可以用手势判断?比如当检测到手指滑动一段距离即可判断需要切换页面了?
回复

使用道具 举报

17

主题

63

回帖

114

积分

初级会员

积分
114
 楼主| 发表于 2018-10-24 10:30:32 | 显示全部楼层
本帖最后由 ssis909 于 2018-10-24 10:34 编辑

获得当前触摸坐标和状态可调用GUI_TOUCH_GetState
回复

使用道具 举报

12

主题

104

回帖

140

积分

初级会员

积分
140
发表于 2018-10-24 13:43:08 | 显示全部楼层
ssis909 发表于 2018-10-24 10:26
箭头是图片,重绘即可,问下可不可以用手势判断?比如当检测到手指滑动一段距离即可判断需要切换页面了?

我就是也是重绘啊。我是比如选择后滑动,那个选择的那一行肯定是执行先重绘一个右移箭头的图片,然后滑动完成再把选中的那一行重绘左移回来,如果多次滑动在同一行附近,就会一直重绘右再重绘左,一直卡卡的感觉。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 11:45 , Processed in 0.365076 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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