可以手动添加自己的消息映射函数BEGIN_MESSAGE_MAP,把消息和函数指针联系起来。
1、在CPP添加:
BEGIN_MESSAGE_MAP(CAutoChirperApp, CWinApp) //{{AFX_MSG_MAP(CAutoChirperApp) //}}AFX_MSG_MAP // Standard file based document commands END_MESSAGE_MAP()
2、在BEGIN_MESSAGE_MAP添加自己的消息函数或系统函数:
BEGIN_MESSAGE_MAP(CAutoChirperApp, CDialog) //{{AFX_MSG_MAP(CAutoChirperApp) ON_WM_PAINT() ON_WM_TIMER() ON_WM_LBUTTONDOWN() ON_WM_LBUTTONUP() ON_WM_WINDOWPOSCHANGED()//系统消息,重画窗口 ON_MESSAGE(WMU_GRAPHNOTIFY, OnGraphNotify)//自定义消息WMU_GRAPHNOTIFY,及函数指针OnGraphNotify
ON_MESSAGE(WMU_BROWSER_MSG, OnBrowserMsg) ON_MESSAGE(WMU_PAGE_STU, OnPageMsg) ON_MESSAGE(WMU_MENU_CANCEL, OnMenuMsg) ON_MESSAGE(WM_DEVICECHANGE, OnDeviceChange) //}}AFX_MSG_MAP //ON_WM_DEVICECHANGE() END_MESSAGE_MAP()
3、在CPP文件中添加消息响应函数:
LRESULT CAutoChirperApp::OnGraphNotify(WPARAM wParam, LPARAM lParam)//SD卡状态函数 { ......
return 0; }
4、添加消息类型
在相关的头文件里添加如下代码:
#define WMU_GRAPHNOTIFY (WM_USER+1004)//自定义的消息,应该在WM_USER基础上增加,但是前100最好不用
5、在头文件的类定义中在public下添加函数声明:
class CAutoChirperApp: public CDialog {
........
protected:
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);//系统消息函数
DECLARE_MESSAGE_MAP()//一定要添加这个宏定义,使BEGIN_MESSAGE_MAP生效
public:
LRESULT OnGraphNotify(WPARAM wParam, LPARAM lParam);//由于是自定义函数,所以不用在函数前面加afx_msg
......
}
http://blog.sina.com.cn/s/blog_4cb6a3410100k20p.html