决定问一下callback

HelloDan 2009-06-11 10:02:46
加精
http://dev.csdn.net/author/firefox1/c57fc75d3dbc46fcb6e3f5ffd0850930.html


一直以来我都认为回调函数就是传一个函数指针给一个函数,在那个特定的函数里面用这个回调函数处理,返回想要的结果给调用的那个函数。像上面那个链接里面的CListCtrl的例子。

typedef void(CALLBACK* SORTLISTPROC)(LPARAM dwCtl); //处理插入排序的回调函数,

class CSortableListCtrl : public CListCtrl
{
DECLARE_DYNAMIC(CSortableListCtrl)

public:
CSortableListCtrl();
virtual ~CSortableListCtrl();

protected:
DECLARE_MESSAGE_MAP()

public:
//在插入数据到列表后立即排序,如果用此方法,在插入数据时必须将该数据插入到第一行
void SortAfterInsert(SORTLISTPROC lpSort, LPARAM dwCtrl); //这里调用回调函数

};

很多人说回函数是系统调用,不知我理解正确不,我觉得,WindowProc这样的函数是系统调用,你可以修改来响应不同的消息。但上面的例子,我觉得是要自己添加处理的方法的,如在一个响应CListCtrl 的InsertItem或SetItemText消息才在消息响应函数里面调用SortAfterInsert,才有机会调用到那个回调函数,这就是所谓的系统自动调用。 但在这样的情况下,我是可以将这个回调函数的实现写在SortAfterInsert这个类里面的,从面不用上面那个回调函数也可以的。

不过对于类型不同的比较,传入不同的指针,在不同的回调函数里面做不同的数据类型转换等,有时候还是很方便的。 不知我上面的理解正不正确??? 欢迎大家指正和发表一下意见。 谢谢
...全文
314 54 打赏 收藏 转发到动态 举报
写回复
用AI写文章
54 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 fldx 的回复:]
123
回帖是一种美德!每天回帖即可获得 10 分可用分!
[/Quote]真的假的
yequancha 2011-08-18
  • 打赏
  • 举报
回复
概念呀~
码农不喜欢bug 2011-01-05
  • 打赏
  • 举报
回复
好像要用到了,赶紧学习!!
heiheizh618 2009-09-14
  • 打赏
  • 举报
回复
....还是不太明白。。
bique 2009-09-01
  • 打赏
  • 举报
回复
我弄了很久,以前搞清楚了,现在没用过,好像忘的差不多了
L403365234 2009-08-31
  • 打赏
  • 举报
回复
学习,但是我觉得这和用postmessage应该是一样的啊
yottaer 2009-06-18
  • 打赏
  • 举报
回复
mark
Fireway2008 2009-06-15
  • 打赏
  • 举报
回复
比起回调函数,我感觉自定义消息函数用得更多,更普遍,

他的格式也是系统约定好的。


说的不对的还请各位指正!
lcmlhs_2005 2009-06-15
  • 打赏
  • 举报
回复
帮顶,接分
Sou2012 2009-06-15
  • 打赏
  • 举报
回复
MARK!!
joybpl01 2009-06-15
  • 打赏
  • 举报
回复
学习
zhihuizhilv 2009-06-14
  • 打赏
  • 举报
回复
mark
fldx 2009-06-12
  • 打赏
  • 举报
回复
回帖是一种美德!每天回帖即可获得 10 分可用分!
DreamFreeLancer 2009-06-12
  • 打赏
  • 举报
回复
回调函数是系统调用?!第一次听说,这是两个不相干的概念吧!系统调用是指调用操作系统提供的运行在系统空间的服务,至少Linux是这样,也许Windows比较另类。而回调函数只是一种语言特性而已。
youzhipeng 2009-06-12
  • 打赏
  • 举报
回复
UP!
ltzhf 2009-06-12
  • 打赏
  • 举报
回复
学习
ahao 2009-06-12
  • 打赏
  • 举报
回复
callback就是个概念,意思就是:你把要调用的东西传给对方,对方在某个时候会调用它。
实现都可以,可以是一个c函数指针,一个c++的functor等等。
dingpin 2009-06-12
  • 打赏
  • 举报
回复
mark
ForestDB 2009-06-12
  • 打赏
  • 举报
回复
在C语言中,用到函数指针即可看成一种callback,使用函数指针是构成编程框架的重要元素。
SimonYeung 2009-06-12
  • 打赏
  • 举报
回复
study
加载更多回复(32)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧