读书人

关于CCmdTarget:DispatchCmdMsg()函

发布时间: 2013-10-12 11:54:02 作者: rapoo

关于CCmdTarget::DispatchCmdMsg()函数的疑惑
函数原型:DispatchCmdMsg(CCmdTarget* pTarget, UINT nID, int nCode,
AFX_PMSG pfn, void* pExtra, UINT nSig, AFX_CMDHANDLERINFO* pHandlerInfo)
第一个问题:DispatchCmdMsg的第一个参数为什么强制性转换为CCmdTarget*指针后再去调用消息函数?我的认为是,消息函数一般都是CCmdTarget衍生类的一般函数,而用CCmdTarget*指针去调用不是很不符合调用一般函数的规则么?
第二个问题:(pTarget->*mmf.pfn_COMMAND)();到底是怎么调用的?这个问题跟上个问题其实是一个问题 消息绕行 MFC DispatchCmdMsg pTarget
[解决办法]
1、第一个不算强制转换,而是参数约束
2、通过函数指针调用

读书人网 >VC/MFC

热点推荐