硬汉嵌入式论坛

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

[emWin] 求一个较贴合实际的例程

[复制链接]

270

主题

605

回帖

1415

积分

至尊会员

积分
1415
发表于 2017-6-2 17:41:28 | 显示全部楼层 |阅读模式
看官方提供的例程,以及新版V5的例程,感觉都不太够贴合实际应用哦。
有许多细节都没展现出来,展现出来的,只是一些最基本的控件用法。
主要体现在,不需要其他的流程逻辑辅助,只是通过emwin自身的回调,消息等机制实现的界面。
但在实际应用中,肯定是有很多复杂的,不是这么规矩的应用的。
比如说,多语言应用,这个在实际中最常用了。
但是官方例程都是最小简单的展示了一下。
或是新版的ATM机的界面中,都是做了最简单,最理想的处理——最明显的就是在第一个界面内进行语言选择,但实际中肯定不会是这样的。
再比如,对动态轨迹,动态时间更新等等在多界面下,需要实时更新显示的。
emwin在这一块都是通过WM_PAINT来实际的,但实际效果是,WM_PAINT根本不会做实时的更新,都需要通过手动维护,手动对内容进行更新。
不知道这种实时功能是emwin不支持呢,还是例程中没有展现出来
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2017-6-2 17:51:15 | 显示全部楼层
你说的这些都很好实现的,你是不是想的太多,做的太少,加油,亲。

比如ATM机的,第一个界面选择语言才是最正确的做法,难道你让老外在我们国内的ATM机里面找去哪里选择转换成英文界面效果。。。。
多做练习,多做项目提炼才是正道。
回复

使用道具 举报

270

主题

605

回帖

1415

积分

至尊会员

积分
1415
 楼主| 发表于 2017-6-2 18:05:32 | 显示全部楼层

回 eric2013 的帖子

eric2013:你说的这些都很好实现的,你是不是想的太多,做的太少,加油,亲。

比如ATM机的,第一个界面选择语言才是最正确的做法,难道你让老外在我们国内的ATM机里面找去哪里选择转换成英文界面效果。。。。
多做练习,多做项目提炼才是正道。 (2017-06-02 17:51) 
不是针对这个ATM机的操作流程来说,只是想说,没有通过例程找到解决问题的方法。
就拿语言切换来说,能在第一个起始界面就选定语言,当然后面相应的语言显示内容就容易实现了。
但实际上,也有很多是先打开了一些界面,甚至是在中文使用过程中,然后再展示给外国客户看。那这时,总不能又重新复位系统再来选择语言吧。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2017-6-2 18:12:52 | 显示全部楼层

回 jplzl10000 的帖子

jplzl10000:不是针对这个ATM机的操作流程来说,只是想说,没有通过例程找到解决问题的方法。
就拿语言切换来说,能在第一个起始界面就选定语言,当然后面相应的语言显示内容就容易实现了。
但实际上,也有很多是先打开了一些界面,甚至是在中文使用过程中,然后再展示给外国客户看。那这时, .. (2017-06-02 18:05) 
多语言实现不是很容易么,你的难点在哪里。

比如多语言设置,我们是不是要做一个设置界面,在里面搞个语言设置选项,然后点击进行更新。有什么难度呢。
回复

使用道具 举报

270

主题

605

回帖

1415

积分

至尊会员

积分
1415
 楼主| 发表于 2017-6-2 20:29:05 | 显示全部楼层

回 eric2013 的帖子

eric2013:

多语言实现不是很容易么,你的难点在哪里。

比如多语言设置,我们是不是要做一个设置界面,在里面搞个语言设置选项,然后点击进行更新。有什么难度呢。
其实不是难,是比较麻烦啊
关键点是,旧的已经存在的页面内容,不会随着语言(新的内容)的切换自动更新撒。
要程序去手动维护的更新
QQ截图20170602202306.png QQ截图20170602202214.png

像这两张图,第1张先建立,是中文的,第2张是之后建立的,第2张其实也是手动又重新初始化了一下这个页面才从中文变成英文的。
然后结束第2张,返回到第1张时,没有重新初始化的话,也还是中文的,并不是英文的。
这样就有一个麻烦,如果改变语言是在几个页面之后的一个页面内设置,那整个手动维护起来就又麻烦,又容易出错了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2017-6-3 02:52:02 | 显示全部楼层
这样的话,有个简单的办法,打开窗口的话,之前的窗口都删掉,返回的话重新创建,这样语言的切换就简单了。
回复

使用道具 举报

270

主题

605

回帖

1415

积分

至尊会员

积分
1415
 楼主| 发表于 2017-6-3 07:48:14 | 显示全部楼层

回 eric2013 的帖子

eric2013:这样的话,有个简单的办法,打开窗口的话,之前的窗口都删掉,返回的话重新创建,这样语言的切换就简单了。 (2017-06-03 02:52)
晕。。。
其实我想说的是,以前对emwin机制不是太熟悉,以为emwin会有相应的api或实现策略来做。
但最近结合ucgui的源码来看的话,emwin应该也只是在控件的回调和消息定块有自动处理,像这种多页面等等需要逻辑流程辅助的操作,都是要用户手动来围绕emwin的基本机制来实现的。

当然,因为要围绕着emwin自有的这种机制,所以,在想要实现一些操作流程时,反而会觉的比不用控件更麻烦。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2017-6-3 10:35:18 | 显示全部楼层

回 jplzl10000 的帖子

jplzl10000:晕。。。
其实我想说的是,以前对emwin机制不是太熟悉,以为emwin会有相应的api或实现策略来做。
但最近结合ucgui的源码来看的话,emwin应该也只是在控件的回调和消息定块有自动处理,像这种多页面等等需要逻辑流程辅助的操作,都是要用户手动来围绕emwin的基本机制来实现的。

.. (2017-06-03 07:48) 
的确是,使用删除操作来实现的你的多语言更新,非常简单,还有什么疑难杂症,继续聊。
回复

使用道具 举报

270

主题

605

回帖

1415

积分

至尊会员

积分
1415
 楼主| 发表于 2017-6-4 07:15:17 | 显示全部楼层

回 eric2013 的帖子

eric2013:的确是,使用删除操作来实现的你的多语言更新,非常简单,还有什么疑难杂症,继续聊。 (2017-06-03 10:35)
在每个页面的顶行显示个标题时间和日期栏,用独立的一个WIN窗口的话,又会有重绘的问题,会遮挡住其他的弹框显示等
用跟随每个WIN页面的TEXT显示吧,又要在页面变动时,实时更新获取当前页面下的这个TEXT的句柄
每次在页面关闭创建时,还得手动维护更新
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-19 14:33 , Processed in 0.046370 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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