打印

发帖送分,顺便再问一个uC/GUI的问题。

[复制链接]
1720|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qzx0580|  楼主 | 2012-8-4 08:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在创建的主页面内,我想执行这个页面创建时写的回调函数,用这个指令:
WM_SetCallback(x1,x2);
其中x1是句柄,x2是回调函数。
主页面是在初始化时创建的,这个语句是在while(1)中执行的。
但是编译的时候,提示x2所指的回调函数标志未定义。这就奇怪了,分明在初始化的时候定义了的。
这个问题先搁下不说,我想要实现的功能就是在这个页面内执行页面创建时烈军属的回调函数,并立即执行。这个到底怎么实现呢?
gui的手册4.18,4.04我看了好几遍都没有找到办法实现这个功能。
高手能帮一把吗?
50分送上。
沙发
acgean| | 2012-8-4 09:00 | 只看该作者
坐沙发, 等高手,uC/GUI 还没有玩过。
不过我感觉这问题不应该, 是不是 “可配置” 特性里面有什么编译或者宏定义没有设置好呢?

使用特权

评论回复
板凳
qzx0580|  楼主 | 2012-8-4 09:12 | 只看该作者
不是,主页面(窗口)函数的建立完全是依照uc/GUI的标准格式实现的。
我参照别的调用程序,唯一的不同是其它成功调用的程序无论定义还是执行都在同一个文件里(*.c),我的程序比较大,因为要做模块,所以将主页面(窗口)函数单独放在一个文件里实现,并且用extern 进行了申明。
出现编译错误的提示是因为我在main函数(另一个*.c文件里)想用WM_SetCallback(x1,x2)调用主页面(窗口)函数里的回调函数(就是这个函数:WM_CreateWindow(,,,,WM_CALLBACK* cb))就是这个参数提示未定义。
其实不用这个WM_SetCallback指令也行,只要能立即调用这个函数就行。

使用特权

评论回复
地板
qzx0580|  楼主 | 2012-8-4 09:37 | 只看该作者
集中一下我的问题,就是用什么指令能够强制改变pMsg->MsgId的值,这个功能目前我还没有想到办法。也没有找到相应的设置指令,伤脑筋。

使用特权

评论回复
5
qzx0580|  楼主 | 2012-8-4 13:28 | 只看该作者
WM_SetId()这条指令有个additional information
  
This function can be used to change the Id of widget .It works with any wmWin widget.When using this function with a application defined window,the callback function of the window should handle the message.otherwise it will be ignored.
我用WM_CreateWindow() 建了一个窗口,再用WM_SetId(窗口句柄,自定义的ID)改变ID,但是单步执行的时候发现ID根本没有改变。不知道是什么原因。难道WM_SetId()这个函数中的ID不是MsgId,而是Data.v的值吗? 用什么办法能够改变pMsg->MsgId的值呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

172

帖子

0

粉丝