可以手动添加自己的消息映射函数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