首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于CCmdTarget:DispatchCmdMsg()函数的不解

2013-10-12 
关于CCmdTarget::DispatchCmdMsg()函数的疑惑函数原型:DispatchCmdMsg(CCmdTarget* pTarget, UINT nID, in

关于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、通过函数指针调用

热点排行