先看一个简单的例子:让程序对鼠标左键响应一个messagebox。
注意,不论是使用ClassWizard还是使用Add windows message Handler,都会在3个地方增加代码:
1.类的头文件中:
其中AFX_msg称为注释宏,它们之间的程序显示为灰色,说明他们之间声明的是消息响应函数。
有两种方法完成这个任务:1.在对应的类上选择Add windows message Handler,然后选择WM_LBUTTONDOWN消息,然后增加处理函数,在处理函数中添加一句:
MessageBox("view click!");
或者使用菜单上的查看->建立类向导,在message maps下选择:Project选择这个工程,Class Name选择从CXXVew,Object ID选择这个类,消息选择WM_LBUTTONDOWN,然后增加函数即可。
注意,不论是使用ClassWizard还是使用Add windows message Handler,都会在3个地方增加代码:
1.类的头文件中:
//{
{AFX_MSG(CCH_4_DRAWView)
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
//}}AFX_MSG
其中AFX_msg称为注释宏,它们之间的程序显示为灰色,说明他们之间声明的是消息响应函数。
2.类的源文件中增加消息映射宏:
BEGIN_MESSAGE_MAP(CCH_4_DRAWApp, CWinApp)
//{
{AFX_MSG_MAP(CCH_4_DRAWApp)
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
3.消息响应函数
void CCH_4_DRAWView::On