使用using 定义函数指针及回调
Posted reboost
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用using 定义函数指针及回调相关的知识,希望对你有一定的参考价值。
示例:
class GMXcanvas : public CStatic
{
// Construction
public:
GMXcanvas();
// Operations
public:
using MsgNotifyFn = void(*)(GmxCanvasMsgEn msgType, void *userData);
//typedef void (*MsgNotifyFn)(GmxCanvasMsgEn msgType, void *userData);
void RegisterCallback(MsgNotifyFn fn,void *userData){ _msgCallback=fn;_userMsgCallbackData=userData;}
private:
MsgNotifyFn _msgCallback;
void *_userMsgCallbackData;
};
GMXcanvas::sumbit()
{
...
if(_msgCallback){
(*_msgCallback)(1200,_userMsgCallbackData);
}
...
}
class GMXgraph{
...
void OnCanvasMesage(GmxCanvasMsgEn msgType);
...
};
GMXgraph::GMXgraph(){
...
auto fn_callback=[](GmxCanvasMsgEn msgType,void *userData)->void{
GMXgraph *dlg = (GMXgraph*) userData;
dlg->OnCanvasMessage(msgType);
};
canvas-> RegisterCallback(fn_callback,this);
...
}
GMXgraph::OnCanvasMesage(GmxCanvasMsgEn msgType)
{
//do real things according msgType
...
}
以上是关于使用using 定义函数指针及回调的主要内容,如果未能解决你的问题,请参考以下文章