VC++ MFC的问题
有个问题是这样的,我用MFC做界面开发,但是,我需要自己写一个类,怎么把这个类的某些函数做成一个事件呢?比如说,CSocket类里,就有Receive事件,我怎么把我写的...
有个问题是这样的,我用MFC做界面开发,但是,我需要自己写一个类,怎么把这个类的某些函数做成一个事件呢?
比如说,CSocket类里,就有Receive事件,我怎么把我写的类里某个函数,也做成事件呢,求大神解答,谢谢! 展开
比如说,CSocket类里,就有Receive事件,我怎么把我写的类里某个函数,也做成事件呢,求大神解答,谢谢! 展开
3个回答
2018-11-28
展开全部
我理解是这样的:
首先是基于消息的时间,既然是基于消息的事件,就必须要和消息对应。所以,你的这个类必须要有处理消息的能力。最简单的做法就是继承自 MFC 中能处理消息的类。然后,在这个类中对自己的事件函数做消息映射,将其和某个消息绑定。比如常用的线程消息 ON_THREAD_MESSAGE。这样的话,你给这个类发消息的时候,就会自动触发对应的事件。
另一种就是自己实现的事件,严格来说也可以叫做回调函数。其实原理上来说,就是提供一个虚父类,然后里面声明好某个事件的函数形式。然后子类派生父类,实现事件的内容。在需要触发事件的代码位置,通过父类指针调用这个事件函数。
首先是基于消息的时间,既然是基于消息的事件,就必须要和消息对应。所以,你的这个类必须要有处理消息的能力。最简单的做法就是继承自 MFC 中能处理消息的类。然后,在这个类中对自己的事件函数做消息映射,将其和某个消息绑定。比如常用的线程消息 ON_THREAD_MESSAGE。这样的话,你给这个类发消息的时候,就会自动触发对应的事件。
另一种就是自己实现的事件,严格来说也可以叫做回调函数。其实原理上来说,就是提供一个虚父类,然后里面声明好某个事件的函数形式。然后子类派生父类,实现事件的内容。在需要触发事件的代码位置,通过父类指针调用这个事件函数。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-11-28
展开全部
所谓事件就是获取到特定的消息时运行的函数, 你所函数写好, 再处理相应的消息, 在消息处理函数中调用该函数.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询