使用消息映射需要将分界宏写入到.cpp文件中
//分界宏
BEGIN_MESSAGE_MAP(MyFrame, CFrameWnd)//分界开始点
END_MESSAGE_MAP()//分界结束点
同时在.h文件的CFrameWnd
子类中声明宏
//声明宏,提供消息映射机制
public:
DECLARE_MESSAGE_MAP()
这样就可以使用消息了。
将需要使用的消息的宏放入到分界宏中间,如:
//分界宏
BEGIN_MESSAGE_MAP(MyFrame, CFrameWnd)
//消息宏,写到分界宏中间
ON_WM_LBUTTONDOWN()//鼠标左键按下
ON_WM_CHAR()//键盘按下
END_MESSAGE_MAP()
然后将消息的函数原型放入.h文件的CFrameWnd子类中。
public:
//函数原型
afx_msg void OnLButtonDown(UINT, CPoint);//鼠标左键按下的函数声明
afx_msg void OnChar(UINT, UINT, UINT);//键盘按下的函数声明
再在.cpp文件中实现函数
//函数实现
void MyFrame::OnLButtonDown(UINT, CPoint point)//鼠标左键按下的函数
{
/*TCHAR buf[1024];
wsprintf(buf, TEXT("x = %d ,y = %d"), point.x, point.y);*/
CString str;
str.Format(TEXT("x = %d ............ y = %d"), point.x, point.y);
MessageBox(str);
}
void MyFrame::OnChar(UINT key, UINT, UINT)
{
CString str;
str.Format(TEXT("按下了 %c 键"), key);
MessageBox(str);
}