硬汉嵌入式论坛

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

[emWin] 回调函数里可不可以传入参数?如果可以传,该如何做?

[复制链接]

14

主题

36

回帖

14

积分

初级会员

积分
14
发表于 2015-2-4 11:48:35 | 显示全部楼层 |阅读模式
我在群里看到一个哥们告诉我说,是可以传的,但是需要很小心,然后又有人告诉我说,如果有必要向里面传参数,可以从创建对话框函数入手。

  GUI_CreateDialogBox(const GUI_WIDGET_CREATE_INFO * paWidget,int NumWidgets,WM_CALLBACK * cb,WM_HWIN hParent,int x0,int y0)
就最后的一些参数。

大神们有没有这么做过?

如果一个小的页面需要多次的重复使用,但是里面的一个小工具比如:listbox。
但是listbox行数是变化的,这个时候如果重复的建立不同的回调函数就会导致代码冗余非常厉害
我就想着能不能向里面传参数精简代码
回复

使用道具 举报

354

主题

2164

回帖

3231

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3231
发表于 2015-2-4 16:19:20 | 显示全部楼层
在创建的窗口和控件的时候可以传入用户数据指针和长度,然后就有API可以通过句柄来读取和更改相应的数据。

在API中搜索usderdata就可以查到。

一般的应用中,直接定义全局变量就好了,随时访问。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115679
QQ
发表于 2015-2-4 20:48:13 | 显示全部楼层
做个自定义消息就行,非常方便,还有就是emwin有个xxx_SetUserData()功能,比如LISTBOX_SetUserData(),楼主可以试试。
回复

使用道具 举报

14

主题

36

回帖

14

积分

初级会员

积分
14
 楼主| 发表于 2015-2-5 09:29:03 | 显示全部楼层

回 eric2013 的帖子

eric2013:做个自定义消息就行,非常方便,还有就是emwin有个xxx_SetUserData()功能,比如LISTBOX_SetUserData(),楼主可以试试。 (2015-02-04 20:48) 
感谢硬汉大哥
回复

使用道具 举报

14

主题

36

回帖

14

积分

初级会员

积分
14
 楼主| 发表于 2015-2-5 09:30:34 | 显示全部楼层

回 caicaptain2 的帖子

caicaptain2:在创建的窗口和控件的时候可以传入用户数据指针和长度,然后就有API可以通过句柄来读取和更改相应的数据。

在API中搜索usderdata就可以查到。

一般的应用中,直接定义全局变量就好了,随时访问。 (2015-02-04 16:19) 
非常感谢,我按照你的思路搞了个全局,在不同事件触发的时候给全局赋不同的值,然后根据不同的值进行不同的初始化对话框,非常方便。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-11 17:17 , Processed in 0.259581 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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