过了几个月的时间对MFC又生疏了一些,近几天又想到一个问题,也不知道以前是不是注意过了,现在发来说一下,呵呵,牛人可别笑话。
在弄MFC消息映射的时候发现了消息处理函数的定义问题,比如说ON_WM_KEYDOWN()的处理函数的原型定义在了类中,但是这个函数的形参要是自主定义的就会有很多疑问了(像没有自主的调用步骤,没有通知系统如何传递参数)?所以我想这个函数一定要在MFC内部有一个原型的限制,找了一下源代码果然如此,下面代码来自MFC的包含头文件AFXMSG_.H: #define ON_WM_KEYDOWN() / { WM_KEYDOWN, 0, 0, 0, AfxSig_vwww, / (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))&OnKeyDown }, 很容易可以看到这个函数的参数信息了,所以消息映射的处理函数是有原型的。
MFC消息映射的处理函数由我们自己定义,但是要遵循这些函数的MFC内部原形。