硬汉嵌入式论坛

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

[AppWizard] 如何像使用emWin经典回调方式一样玩AppWizard的消息处理

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2021-9-22 10:27:22 | 显示全部楼层 |阅读模式
比如使用AppWizard对如下界面生成代码

234.png


里面有两个按钮,ID_BUTON_00和ID_BUTTON_01,我们这里不使用AppWizard做消息处理

那么生成的文件ID_SCREEN_00.c,直接就可以使用

  1. /*********************************************************************
  2. *
  3. *       Public code
  4. *
  5. **********************************************************************
  6. */
  7. /*********************************************************************
  8. *
  9. *       cbID_SCREEN_00
  10. */
  11. void cbID_SCREEN_00(WM_MESSAGE * pMsg) {
  12.     GUI_USE_PARA(pMsg);
  13.     int NCode, Id;
  14.     WM_HWIN hWin = pMsg->hWin;

  15.     switch (pMsg->MsgId)
  16.     {

  17.         case WM_NOTIFY_PARENT:
  18.             Id = WM_GetId(pMsg->hWinSrc);
  19.             NCode = pMsg->Data.v;        
  20.             switch (Id)
  21.             {
  22.                 case ID_BUTTON_01:
  23.                     if(NCode==WM_NOTIFICATION_RELEASED)
  24.                                         {
  25.                                                 
  26.                                         }
  27.                     break;
  28.                                        
  29.                 case ID_BUTTON_00:
  30.                     if(NCode==WM_NOTIFICATION_RELEASED)
  31.                                         {
  32.                                                 
  33.                                         }
  34.                     break;
  35.                
  36.             }
  37.             break;
  38.                         
  39. //        default:
  40. //            WM_DefaultProc(pMsg);
  41.     }
  42. }
复制代码



注意将  default:  WM_DefaultProc(pMsg); 注释掉。











回复

使用道具 举报

3

主题

11

回帖

20

积分

新手上路

积分
20
发表于 2021-9-23 11:22:37 | 显示全部楼层
请问有完整的工程代码分享吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2021-9-23 12:07:06 | 显示全部楼层
rioway 发表于 2021-9-23 11:22
请问有完整的工程代码分享吗

本周可能更新相应章节教程和配套例子。
回复

使用道具 举报

2

主题

269

回帖

275

积分

高级会员

积分
275
发表于 2021-9-25 22:19:00 | 显示全部楼层
请问为什么要屏蔽default:  WM_DefaultProc(pMsg);默认处理函数呢网上没找到相关资料,想了解下方便避坑

官方中文手册只有如下介绍:
  1. WM_DefaultProc()
  2. 描述
  3. 默认消息处理器。
  4. 原型
  5. void WM_DefaultProc(WM_MESSAGE * pMsg);
  6. 参数 描述
  7. pMsg 指向消息的指针。
  8. 表 18.24: WM_DefaultProc()参数列表
  9. 附加信息
  10. 使用此函数按如下示例处理未处理的消息:
  11. static WM_RESULT cbBackgroundWin(WM_MESSAGE * pMsg) {
  12. switch (pMsg->MsgId) {
  13. case WM_PAINT:
  14. GUI_Clear();
  15. default:
  16. WM_DefaultProc(pMsg);
  17. }
  18. }
复制代码
回复

使用道具 举报

3

主题

11

回帖

20

积分

新手上路

积分
20
发表于 2021-9-26 08:45:41 | 显示全部楼层
cctv180 发表于 2021-9-25 22:19
请问为什么要屏蔽default:  WM_DefaultProc(pMsg);默认处理函数呢网上没找到相关资料,想了解下方便避坑

...

AppWizard程序里面打开手册,文档UM03003里面,11.2章节
回复

使用道具 举报

9

主题

32

回帖

59

积分

初级会员

积分
59
发表于 2021-9-27 17:42:02 | 显示全部楼层
我以为蓝色部分是emwin做出来的呢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2021-9-28 03:01:05 | 显示全部楼层
hellowolf 发表于 2021-9-27 17:42
我以为蓝色部分是emwin做出来的呢

新增的一批案例还不错,全部基于AppWizard创建













回复

使用道具 举报

25

主题

91

回帖

166

积分

初级会员

积分
166
发表于 2022-4-19 12:39:01 | 显示全部楼层
eric2013 发表于 2021-9-28 03:01
新增的一批案例还不错,全部基于AppWizard创建

如果背景是appwizard背景色,哪不是看不清了?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2022-4-20 09:33:12 | 显示全部楼层
珠联璧合 发表于 2022-4-19 12:39
如果背景是appwizard背景色,哪不是看不清了?

自己随意修改啊
回复

使用道具 举报

10

主题

21

回帖

51

积分

初级会员

积分
51
发表于 2023-4-24 13:48:44 | 显示全部楼层
AppWizard  生成的ui,在么进行页面切换?
回复

使用道具 举报

609

主题

3047

回帖

4894

积分

至尊会员

积分
4894
发表于 2023-8-4 16:31:34 | 显示全部楼层
本帖最后由 hpdell 于 2023-8-4 17:21 编辑
ccc_clive 发表于 2023-4-24 13:48
AppWizard  生成的ui,在么进行页面切换?

我也想知道哟,还有里面的 文本动态更改显示等 ,貌似他们也不提供几个完整的例程,哎
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2023-8-5 08:26:47 | 显示全部楼层
hpdell 发表于 2023-8-4 16:31
我也想知道哟,还有里面的 文本动态更改显示等 ,貌似他们也不提供几个完整的例程,哎

1、动态更新使用我楼主位的方式,开emWin定时器动态更新即可
2、页面切换有案例。
回复

使用道具 举报

609

主题

3047

回帖

4894

积分

至尊会员

积分
4894
发表于 2023-8-5 20:09:27 | 显示全部楼层
eric2013 发表于 2023-8-5 08:26
1、动态更新使用我楼主位的方式,开emWin定时器动态更新即可
2、页面切换有案例。

我测试了一下 使用 appwizard 做了一个界面, 里面有 wheel 控件, 在这个  ID_SCREEN_00.c 的会掉函数里面获取 这个控件的数据会死机,


或者控件的方法及函数以前使用在 标准的 emwin 接口上是没有问题的呀,现在在这个 appwizard 里面却不行 窝 ?
回复

使用道具 举报

44

主题

562

回帖

699

积分

金牌会员

积分
699
发表于 2023-8-6 08:02:13 | 显示全部楼层
这个方式AppWizard 就做页面布局用的吧
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2023-8-7 01:23:38 | 显示全部楼层
ou513 发表于 2023-8-6 08:02
这个方式AppWizard 就做页面布局用的吧

对,也可以用AppWizard的信号槽方式触发消息处理。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 00:42 , Processed in 0.284376 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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