1.1、在MFC中处理消息的函数是固定的,如afx_msg int OnCreate(LPCREATESTRUCT);这是一个固定的,对应于ON_WM_CREAT()宏。如果改变了函数名,对应的宏就会不认识。
1.2、MyCreate函数,用来响应系统的WM_CREATE消息,这些函数是有固定格式要求的。并且函数名必须和MSDN给定的函数名保持完全一致。
1.3、
struct AFX_MSGMAP { const AFX_MSGMAP* (PASCAL* pfnGetBaseMap)(); const AFX_MSGMAP_ENTRY* lpEntries; };
1.4、
struct AFX_MSGMAP_ENTRY { UINT nMessage; // windows message UINT nCode; // control code or WM_NOTIFY code UINT nID; // control ID (or 0 for windows messages) UINT nLastID; // used for entries specifying a range of control id‘s UINT_PTR nSig; // signature type (action) or pointer to message # AFX_PMSG pfn; // routine to call (or special value) };
1.5、OnWndMsg();这个函数负责处理消息映射机制宏中的消息。
1.6、
struct AFX_MSG_CACHE { UINT nMsg; AFX_MSGMAP_ENTRY *lpEntry; AFX_MSGMAP *pMessageMap; }
1.7、AfxFindMessageEntry(pMessageMap->lpEntries, message, 0, 0) != null
如果,pMessageMap->lpEntries指向的数组中,有message消息,那么该函数返回数组中这个元素的地址,否则返回null
时间: 2024-11-09 21:55:34