1、向导生成的消息:
view.h
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMfctestView)
public:
virtual void OnDraw(CDC* pDC); // overridden to draw this view
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
//}}AFX_VIRTUAL
protected:
//{{AFX_MSG(CMfctestView)
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
-------------------------------------------------------------------------------------------------------
view.cpp
BEGIN_MESSAGE_MAP(CMfctestView, CView)
//{{AFX_MSG_MAP(CMfctestView)
ON_WM_LBUTTONDOWN()
ON_WM_KEYDOWN()
//}}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()
2、自定义消息
技术要点
1、定义用户消息的ID
2、消息处理函数(声明与定义)
3、消息映射
4、用户消息的发送---- 在某函数中发送自定义
view.h
const UINT WM_USERMSG=WM_USER+100;//最好从100开始 非类成员
public:
void OnMyFunction();
-----------------------------------------------------------------------------------------------
view.cpp
void CMfctestView:: OnMyFunction()
{MessageBox("恭喜你,消息发送成功!");}
BEGIN_MESSAGE_MAP(CMfctestView, CView)
//{{AFX_MSG_MAP(CMfctestView)
ON_WM_LBUTTONDOWN()
ON_WM_KEYDOWN()
//}}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)
ON_MESSAGE(WM_USERMSG,OnMyFunction)
END_MESSAGE_MAP()
在类的其它函数中:
HWND hWnd=GetSafeHwnd();
:: PostMessage(hWnd,WM_USERMSG,0,0);