于MFC于, OnWndMsg功能,如以下处理步骤:
1)首先。被推断消息有一个消息响应函数。例如OnLButtonDown()处理“左新闻”新闻。
2)数。这里以MFC 的projectDraw为例。OnWndMsg会在CDrawTest.h中查找。看看DECLARE_MESSAGE_MAP()之上,
两个afx_msg凝视宏之间是否有对应的消息响应函数的原型声明,例如以下:
//CDrawTest.h
protected:
//{{AFX_MSG(CDrawView)
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);//函数OnLButtonDown()的原型声明
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
接着。再到CDrawView.cpp中。看看BEGIN_MESSAGE_MAP()和END_MESSAGE_MAP()这两个宏之间是否有对应的消息映射宏。例如以下:
// CDrawView.cpp IMPLEMENT_DYNCREATE(CDrawView, CView) BEGIN_MESSAGE_MAP(CDrawView, CView)
//{{AFX_MSG_MAP(CDrawView)
ON_WM_LBUTTONDOWN() //函数OnLButtonDown()在消息映射宏之中
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()
3)假设通过1)、2)步骤,找到了消息响应函数,那么接着就会调用该响应函数。对消息进行处理。
假设子类中没有找到消息响应函数。那么就就给基类处理。
4)通过以上步骤。MFC就实现了详细的消息映射。从而完毕对消息的响应。
5)函数OnLButtonDown()的实现:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2FucWltYQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast">
版权声明:本文博主原创文章,博客,未经同意不得转载。