硬汉嵌入式论坛

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

[emWin] 帮我看下,这个有1个问题,关于子框弹出的问题,重复创建子框的问题

[复制链接]

27

主题

70

回帖

151

积分

初级会员

积分
151
发表于 2018-9-7 16:02:22 | 显示全部楼层 |阅读模式
本帖最后由 ^张浩然 于 2018-9-8 16:16 编辑

帮我看下,这个有一个问题,一直点GUI_ID_EDIT0与GUI_ID_EDIT1的时候,会一直创建键盘对话框,点结束对话框也需要点很多次,如何改成点击GUI_ID_EDIT0与GUI_ID_EDIT1的时候只出一次,而不是一直重复创建

GUIDEMO_Start.c

964.56 KB, 下载次数: 13

回复

使用道具 举报

27

主题

70

回帖

151

积分

初级会员

积分
151
 楼主| 发表于 2018-9-7 17:24:18 | 显示全部楼层

顶顶顶顶顶顶顶顶顶顶顶

本帖最后由 ^张浩然 于 2018-9-7 17:26 编辑

顶顶顶顶顶顶顶顶顶顶顶顶
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115776
QQ
发表于 2018-9-8 02:10:27 | 显示全部楼层
明天了给你测试下,现在有点晚了。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115776
QQ
发表于 2018-9-9 14:09:57 | 显示全部楼层
改成这个消息可以解决。

ps:后面把你的代码规整规整,别人阅读太吃力了
QQ截图20180909140901.png
回复

使用道具 举报

27

主题

70

回帖

151

积分

初级会员

积分
151
 楼主| 发表于 2018-9-10 09:16:25 | 显示全部楼层
eric2013 发表于 2018-9-9 14:09
改成这个消息可以解决。

ps:后面把你的代码规整规整,别人阅读太吃力了

好的,我的代码多加点注释,规整下,现在WM_NOTIFICATION_MOVED_OUT这个变得难触发了,如果按照Widget has been clicked and pointer has been moved out of the widget without releasing.这个操作,也会出现多次触发的情况,需要关多次
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115776
QQ
发表于 2018-9-11 02:56:54 | 显示全部楼层
^张浩然 发表于 2018-9-10 09:16
好的,我的代码多加点注释,规整下,现在WM_NOTIFICATION_MOVED_OUT这个变得难触发了,如果按照Widget ha ...

看我这个界面就是用的这种方式

http://www.armbbs.cn/forum.php?m ... &extra=page%3D1

QQ截图20180911025636.png
回复

使用道具 举报

27

主题

70

回帖

151

积分

初级会员

积分
151
 楼主| 发表于 2018-9-11 16:47:51 | 显示全部楼层
eric2013 发表于 2018-9-11 02:56
看我这个界面就是用的这种方式

http://www.armbbs.cn/forum.php?mod=viewthread&tid=17330&extra=p ...

这个问题可能最后要加标志位,今天发现个问题 ICON,把指令放在WM_NOTIFICATION_CLICKED和 WM_NOTIFICATION_RELEASED根本不触发,放在WM_NOTIFICATION_MOVED_OUT下可以触发怎么回事。

case ID_ICONVIEW_0: // Notifications sent by 'Iconview'
      switch(NCode) {
      case WM_NOTIFICATION_CLICKED:
        // USER START (Optionally insert code for reacting on notification message)
        GUI_EndDialog(hDlg,0);
        GUI_CreateDialogBox(_aDialogCreate4, GUI_COUNTOF(_aDialogCreate4), _cbDialog4, WM_HBKWIN, 0, 0);
       // USER END
        break;
      case WM_NOTIFICATION_RELEASED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      case WM_NOTIFICATION_MOVED_OUT:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      case WM_NOTIFICATION_SCROLL_CHANGED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      case WM_NOTIFICATION_SEL_CHANGED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115776
QQ
发表于 2018-9-12 02:07:12 | 显示全部楼层
^张浩然 发表于 2018-9-11 16:47
这个问题可能最后要加标志位,今天发现个问题 ICON,把指令放在WM_NOTIFICATION_CLICKED和 WM_NOTIFICATI ...

参考此贴智能家居的例子试试:
http://www.armbbs.cn/forum.php?m ... &extra=page%3D1
回复

使用道具 举报

27

主题

70

回帖

151

积分

初级会员

积分
151
 楼主| 发表于 2018-9-12 16:45:07 | 显示全部楼层
eric2013 发表于 2018-9-12 02:07
参考此贴智能家居的例子试试:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=23687&extra=pag ...

有裸机的相关例程吗,裸机的比较易懂
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115776
QQ
发表于 2018-9-13 03:43:44 | 显示全部楼层
^张浩然 发表于 2018-9-12 16:45
有裸机的相关例程吗,裸机的比较易懂

仅看emWin任务即可,跟裸机没区别。
回复

使用道具 举报

27

主题

70

回帖

151

积分

初级会员

积分
151
 楼主| 发表于 2018-9-13 10:28:10 | 显示全部楼层
本帖最后由 ^张浩然 于 2018-9-13 15:22 编辑
eric2013 发表于 2018-9-13 03:43
仅看emWin任务即可,跟裸机没区别。

我移植了一下你给我发的那个智能家居的那个,发现仅仅支持按键的,触屏怎么没反应呢,文字显示不出来,背景也显示不出来,需要修改什么地方呢,回调函数只能到case WM_PAINT:和case GUI_ID_ICONVIEW0:这个地方,这个case  WM_NOTIFICATION_RELEASED:地方到不了怎么回事。我移植了好几个教程基本都是到不了这一步,有些到一次就到不了了,我用guibuid建的也是这个问题,我移植的有一个只有第一次能到WM_NOTIFICATION_CLICKED:这个地方,第二次就到不了了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115776
QQ
发表于 2018-9-14 01:31:41 | 显示全部楼层
^张浩然 发表于 2018-9-13 10:28
我移植了一下你给我发的那个智能家居的那个,发现仅仅支持按键的,触屏怎么没反应呢,文字显示不出来,背 ...

看下GUIConf.C文件,看看是不是动态内存小了。
回复

使用道具 举报

27

主题

70

回帖

151

积分

初级会员

积分
151
 楼主| 发表于 2018-9-14 09:12:58 | 显示全部楼层
eric2013 发表于 2018-9-14 01:31
看下GUIConf.C文件,看看是不是动态内存小了。

#include "GUI.h"

/*********************************************************************
*
*       Defines
*
**********************************************************************
*/
//
// Define the available number of bytes available for the GUI
//
#define EX_SRAM 1/*1 used extern sram, 0 used internal sram1024*150 */
#define GUI_NUMBYTES  (1024*300)

/*********************************************************************
*
*       Public code
*
**********************************************************************
*/

/*********************************************************************
*
*       GUI_X_Config
*
* Purpose:
*   Called during the initialization process in order to set up the
*   available memory for the GUI.
*/
void GUI_X_Config(void) {
  //
  // 32 bit aligned memory area
  //
  static U32 aMemory[GUI_NUMBYTES / 4];
  //
  // Assign memory to emWin
  //
  GUI_ALLOC_AssignMemory(aMemory, GUI_NUMBYTES);
  //
  // Set default font
  //
  GUI_SetDefaultFont(GUI_FONT_6X8);
}




这个是我那个的配置文件
回复

使用道具 举报

27

主题

70

回帖

151

积分

初级会员

积分
151
 楼主| 发表于 2018-9-14 09:58:30 | 显示全部楼层
本帖最后由 ^张浩然 于 2018-9-14 10:01 编辑

WM_MULTIBUF_Enable(1);这个也是开启的,3级  #define NUM_BUFFERS  3 /* Number of multiple buffers to be used */#define NUM_VSCREENS 1 /* Number of virtual screens to be used */
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 09:36 , Processed in 0.319719 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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