knight_lxf 发表于 2013-11-13 00:21:56

uC/GUI 回调函数的疑惑

uC/GUI版本:V5.22
环境:基于VC++6.0的模拟仿真环境
代码如下static void _cbCallBack(WM_MESSAGE *pMsg)
{
...
...
...
}

void MainTask(void)
{
        GUI_Init();
        hWin = GUI_CreateDialogBox(aDialogCreate,GUI_COUNTOF(aDialogCreate),_cbCallBack,0,0,0);

        WM_Exec();   
...
...
...
}debug现象为:
      在执行GUI_CreateDialogBox()时也会进入回调函数,这可不可以理解为在该函数执行时调用了_cbCallBack()。
      但是在WM_Exec()执行时也调用了回调函数。这又是为什么呢? 也就是不明白回调函数与WM_Exec()有什么关系。

另,
      在基于这种消息机制中,这个回调函数_cbCallBack() 扮演什么角色?

      消息机制这块纯小白,还望哪儿位大牛不吝赐教,最好能有什么博客或书籍 让我自己体会体会!

knight_lxf 发表于 2013-11-13 00:52:16

现象追加:
    修改回调函数_cbCallBack() ,函数体定义为空。在该回调函数内部不进行任何操作。但是不影响GUI_CreateDialogBox() 和 WM_Exec()函数的执行。
    推断:在WM_Exec()函数内部不只是执行回调函数,貌似还有重绘整个窗口的动作!
页: [1]
查看完整版本: uC/GUI 回调函数的疑惑