Windows消息分类

来源:互联网 发布:ireport java打印 编辑:程序博客网 时间:2024/05/21 11:33

Windows消息分为三类:

标准消息:除了WM_COMMAND之外,所有以WM_开头的消息都是标准消息,从CWnd派生的类都可以接受这类消息。

    例如:

在.h文件中声明的WM_RBUTTONDOWN标准的消息

//{{AFX_MSG(CMenuView)
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()

在.cpp文件中声明的WM_RBUTTONDOWN标准的消息

BEGIN_MESSAGE_MAP(CMenuView, CView)
 //{{AFX_MSG_MAP(CMenuView)
 ON_WM_RBUTTONDOWN()//右击鼠标事件消息
 //}}AFX_MSG_MAP
END_MESSAGE_MAP()

对应的函数

void CMenuView::OnRButtonDown(UINT nFlags, CPoint point)
{......}

命令消息:来自菜单、加速键或工具栏按钮的消息。这类消息以WM_COMMAND形式呈现,在MFC中菜单项的ID标识来区分各自的命令消息,在SDK中通过消息的wParam参数识别,从CCmdTarget派生的类都可以接受。

通告消息:由控件产生的消息,例如按钮的单机、列表框的等,目的是为了向其父窗口通知事件的发生,这类消息也是以WM_COMMAMD形式(并不是消息一定以WM开头而是指通过ID和函数名称相关联的方式来定义此类消息,例如ON_BN_CLICKED(IDOK, &CDlgDrawText::OnBnClickedOk)),从CCmdTarget派生的类可以接受到此种消息。

注:因为CWnd类是从CCmdTarget类派生的,所有CWnd类和其派生类可以接受所有消息,而CCmdTarget和其派生的类不能接受通告消息。

0 0
原创粉丝点击