MFC 消息映射机制

来源:互联网 发布:清华软件学院怎么样 编辑:程序博客网 时间:2024/06/09 19:33

消息映射机制分为三部分:

1.声明

在类定义中加入消息处理函数的函数声明,注意要以afx_msg打头。

例如WM_CREATE的消息处理函数的函数声明:afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);


2.映射

在类的消息映射表中添加该消息的消息映射入口项(在BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间)。

例如

BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
ON_BN_CLICKED(IDOK, &CAboutDlg::OnBnClickedOk)
END_MESSAGE_MAP()


3.实现(处理)

在类实现中添加消息处理函数的函数实现。

例如

void CAdditionDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
CDialogEx::OnOK();
}

不管是手动添加还是自动添加消息处理函数都离不开上面三步。


Windows消息机制

windows通过消息的形式向窗口传递用户输入。消息可以由系统和应用程序生成。该系统会为每个输入事件产生相应的消息,

例如,用户点击鼠标,移动鼠标或滚动条,或是应用程序改变了系统的某些属性,比如说系统更改了字体资源,改变了某个窗口的

大小。 windows系统将消息发送到一个窗口消息处理函数时传递四个参数:窗口句柄,消息标识符,两个DWORD值(消息参数)。

窗口句柄标识了该消息的目的窗口。windows使用它来确定是哪个窗口的的窗口消息处理函数收到该消息。

在MFC中如果应用程序要处理某种消息只需要在窗口中编写相应消息的处理方法即可,格式按照消息处理的声明,映射,实现三步。



0 0
原创粉丝点击