hpxzw_foxmai 发表于 2023-11-23 09:11:02

求助emwin窗口滑动方案

大家好,最近有个需求,就是在小界面上做窗口滑动
因为历史原因,可能需要用到emwin的GUI

说明:
界面很小,240x240,有多个界面

界面A显示几个文字、波形、按钮,
界面B是另外的文字、波形、按钮,
界面C是设置菜单,
界面D是其他菜单

需求:
界面A滑动到界面B,需要能看到过渡动画,其他的界面切换也是一样

问:
1、是否可以实现这样的操作?怎么弄?有没有参考的方案?
2、界面A滑到界面B,如果界面B再滑回界面A,是反方向滑动好处理,还是统一一个方向循环滑动好?






eric2013 发表于 2023-11-23 09:47:37

没问题,emWin有个Mothon组件,专门做滑动使用的。

这个里面例子的MainTask.c有对应的使用,帖子里面也有个视频效果展示。
https://www.armbbs.cn/forum.php?mod=viewthread&tid=17330&extra=page%3D1

hpxzw_foxmai 发表于 2023-11-23 10:23:38

eric2013 发表于 2023-11-23 09:47
没问题,emWin有个Mothon组件,专门做滑动使用的。

这个里面例子的MainTask.c有对应的使用,帖子里面也 ...

谢谢版主,我看到过,
请教下这个mothon组件,里面可以叠加FrameWIN吗?
可以的话,我把波形、按钮、文字都放在Framewin里面

eric2013 发表于 2023-11-23 10:49:56

hpxzw_foxmai 发表于 2023-11-23 10:23
谢谢版主,我看到过,
请教下这个mothon组件,里面可以叠加FrameWIN吗?
可以的话,我把波形、按钮、文 ...

推荐用对话框,对话框的主体窗口使用Window

hpxzw_foxmai 发表于 2023-11-23 11:22:38

eric2013 发表于 2023-11-23 10:49
推荐用对话框,对话框的主体窗口使用Window

版主,我们之前的控件,都是在framewin里面弄的,涉及到皮肤、动态设置里面小framewin的大小、位置,等等,如果可以framewin的话,那就会方便很多

eric2013 发表于 2023-11-23 14:13:27

hpxzw_foxmai 发表于 2023-11-23 11:22
版主,我们之前的控件,都是在framewin里面弄的,涉及到皮肤、动态设置里面小framewin的大小、位置,等等 ...

也可以,对话框主体窗口使用FrameWin。

hpxzw_foxmai 发表于 2023-11-23 14:54:58

eric2013 发表于 2023-11-23 14:13
也可以,对话框主体窗口使用FrameWin。

谢谢版主,我研究下

hpxzw_foxmai 发表于 2023-12-6 18:52:40

eric2013 发表于 2023-11-23 14:13
也可以,对话框主体窗口使用FrameWin。







版主,请教一下,
假设全屏分辨率320x320
全屏界面1: 2个FRAMEWIN 上面framewin1是显示ABCD,下面framewin2是显示EE


全屏界面2: 1个FRAMEWIN 显示一个方形

请问我怎么做到可以滑动时,界面显示像图3的效果,
全屏界面1显示60% 全屏界面2显示40%(可能比例不太准,差不多的效果就行)

版主能做一个小的例程,搞个maintask文件,让我在上位机看看吗?


eric2013 发表于 2023-12-7 08:37:27

hpxzw_foxmai 发表于 2023-12-6 18:52
版主,请教一下,
假设全屏分辨率320x320
全屏界面1: 2个FRAMEWIN 上面framewin1是显示 ...

之前分享的那个基于motion的方案是不是不太顺手,试试简单的方案。

方案1:界面1先显示一个窗口,窗口有个WM_TOUCH消息,在这个消息里面,你可以获取按下时的坐标位置,然后你移动后,就会可以在这消息里面获取新的坐标位置,然后调用函数WM_MoveTO就可以移动窗口到新的位置。

方案2:继续用motion方案,这个有个简单的例子,此贴:
Motion demo
https://www.armbbs.cn/forum.php?mod=viewthread&tid=5702

hpxzw_foxmai 发表于 2023-12-7 09:15:54

eric2013 发表于 2023-12-7 08:37
之前分享的那个基于motion的方案是不是不太顺手,试试简单的方案。

方案1:界面1先显示一个窗口,窗口 ...

非常感谢{:34:}

hpxzw_foxmai 发表于 2023-12-7 17:33:25

eric2013 发表于 2023-12-7 08:37
之前分享的那个基于motion的方案是不是不太顺手,试试简单的方案。

方案1:界面1先显示一个窗口,窗口 ...

谢谢版主
我准备创建几个子窗口,然后使用全屏触摸算法,计算按下过程中的触摸坐标,然后定时几十ms更新一次偏移值,然后发消息给主窗口
主窗口调用
WM_MoveWindow(hWin_child0, dx, 0);
可以一次移动所有的窗口,这样就可以做到一起移动
现在在电脑上没有问题,后面看看在开发板上卡不卡

eric2013 发表于 2023-12-8 10:02:54

hpxzw_foxmai 发表于 2023-12-7 17:33
谢谢版主
我准备创建几个子窗口,然后使用全屏触摸算法,计算按下过程中的触摸坐标,然后定时几十ms更新 ...

也行,其实用WM_TOUCH消息里面获取更方便,不用定时轮询了。

hpxzw_foxmai 发表于 2023-12-11 12:13:39

eric2013 发表于 2023-12-8 10:02
也行,其实用WM_TOUCH消息里面获取更方便,不用定时轮询了。

因为每个界面有很多个小的framewin,滑动的时候,是整体滑动,
在TOUCH消息里面处理,可能比较分散,反而不太好处理
页: [1]
查看完整版本: 求助emwin窗口滑动方案