野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9666|回复: 6

[emWin] 关于emwin不使用回调机制下的重绘操作执行方案的讨论

[复制链接]
发表于 2017-7-25 15:52:42 | 显示全部楼层 |阅读模式
在做触摸edit弹出小键盘的实验时,由于没有使用回调机制,只是定期使用函数”GUI_Exec();”进行更新,所以由此出现了一些问题。
主要是在触摸edit弹出小键盘后怎么返回的事情。现在虽然已经实现了重新显示小键盘弹出之前的界面,但我是直接重新绘制整个界面,如果后期加入背景图片的话,这样刷屏是不行的。
所以想问下各位好汉有什么更好的方式吗?至于删除小键盘界面,我试了下貌似不行,先谢过各位。部分代码我贴在下面:
  1. void FunctionTouchJudge(FunctionList functionList)
  2. {
  3.         /*
  4.         **        函数说明:
  5.                 1.此函数用来判断触摸区域是不是在function范围
  6.                 2.function按钮的功能:
  7.                         0.切换窗口
  8.                         3.小键盘输入
  9.         */
  10.         int xstart, ystart, xend, yend;
  11.         xstart = functionList.data.x;
  12.         ystart = functionList.data.y;
  13.         xend = functionList.data.width + xstart;
  14.         yend = functionList.data.height + ystart;
  15.         if (PID_INFO.y <= yend && PID_INFO.x <= xend &&
  16.                 PID_INFO.y >= ystart && PID_INFO.x >= xstart &&
  17.                 TouchCondition == 0)
  18.         {
  19.                 switch (functionList.data.FunctionType)
  20.                 {
  21.                 case 0:
  22.                         TouchCondition = 1;
  23.                         showWindow(functionList.data.NextWindowID);
  24.                         break;
  25.                 case 1:
  26.                         break;
  27.                 case 2:
  28.                         break;
  29.                 case 3:
  30.                         //判断小键盘是那个被按下,相应按下的数值传递到寄存器保存,然后传给edit显示
  31.                         break;
  32.                 case 4:
  33.                         //考虑是直接重新显示界面还是关闭窗口的事情,实际上应该是关闭窗口来的好些
  34.                         //如果重新显示界面的话,没有更新的那部分其实也没必要重新绘制,不然很慢
  35.                         TouchCondition = 1;
  36.                         //WM_DeleteWindow(LastHwin);        //1.删除小键盘界面
  37.                         //GUI_Exec();
  38.                         //WM_InvalidateWindow(LastKeyboardHwin);
  39.                         //WM_Exec();
  40.                         //WM_Paint(LastHwin);
  41.                         showWindow(LastWindowID);          //2.直接显示原界面

  42.                         break;
  43.                 default:
  44.                         break;
  45.                 }
  46.         }
  47.         else
  48.         {
  49.                 TouchCondition = 0;
  50.         }
  51. }
复制代码



回复

使用道具 举报

发表于 2017-7-25 16:14:38 | 显示全部楼层
帮顶                 ,gui大家都用的少。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-25 16:31:17 | 显示全部楼层
fire 发表于 2017-7-25 16:14
帮顶                 ,gui大家都用的少。

回复 支持 反对

使用道具 举报

发表于 2017-7-25 16:32:19 | 显示全部楼层

很多问题的,同样功能的程序从F1系列移植到F4系列有时候都需要调试很久。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-25 20:04:43 | 显示全部楼层
fire 发表于 2017-7-25 16:32
很多问题的,同样功能的程序从F1系列移植到F4系列有时候都需要调试很久。

扎心了版主...最后调出来发现实际上问题并不大,但他就是发生了
回复 支持 反对

使用道具 举报

发表于 2018-5-9 17:02:42 | 显示全部楼层
我现在也是遇到多级菜单如何返回上一界面的问题?和您的差不多,求赐教
回复 支持 反对

使用道具 举报

发表于 2018-5-9 17:13:45 | 显示全部楼层
哥们在吗?您的问题解决了吗?求助
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-8 10:50 , Processed in 0.032776 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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