MFC+消息类型(详解)

MFC+消息类型(详解)

ID:37712533

大小:31.50 KB

页数:6页

时间:2019-05-29

MFC+消息类型(详解)_第1页
MFC+消息类型(详解)_第2页
MFC+消息类型(详解)_第3页
MFC+消息类型(详解)_第4页
MFC+消息类型(详解)_第5页
资源描述:

《MFC+消息类型(详解)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、MFC消息类型(详解)  1、命令消息(WM_COMMAND)所有派生自CCmdTarget的类都有资格接受WM_COMMAND。2、Window消息(WM_xxx)所有派生自CWnd的类都有资格接受WM_xxx。3、控件消息(WM_NOTIFY)控件向其父窗口通知消息。三、消息处理1、WM_xxx消息处理窗口类(自身)处理→基类处理→CWnd∷DefWindowProc()处理;其所对应的宏一般为在消息WM_前面加上ON_。2、命令消息处理命令消息来自命令用户接口对象(菜单、加速键或工具栏按钮)发出的

2、WM_COMMAND消息;㈠、WM_COMMAND消息其所包含的类型和对应的宏如下:①、ON_COMMAND(ID,pfn)标准的命令消息;②、ON_COMMAND_EX(ID,pfn)多个对象对同一个命令ID的处理;其函数的原型如下:afx_msgBOOLpfn(UINTnID)说明:当返回TRUE时表示已经处理,不用在消息处理链中继续处理该命令;为FALSE时表示继续在消息处理链中处理该命令。注意:其一:在多对象处理中一定要使用该宏;其二:pfn(UINTnID)(消息处理函数)返回值将其类型voi

3、d改成BOOL,而且必须为FALSE;其三:多个对象的处理是由高层向低层的过程:即视图类→主框架窗口类→应用程序类;③、ON_COMMAND_RANGE(nID,nLastID,pfn)多个命令ID提供相同的处理;注意:其一:确保nID、nLastID的值在Resource.h中是连续的。其二:一般在函数pfn(UINTnID)中加入参数,用来确定那一个按钮点击。㈡、CN_UPDATE_COMMAND_UI消息当菜单项、工具栏按钮等[命令用户接口对象]要更新其状态时所对应的消息,它所包含的类型和对应的宏

4、如下:①、ON_UPDATE_COMMAND_UI(ID,pfn)其中函数的原型如下:afx_msgvoidpfn(CCmdUI*pCmdUI)②、ON_UPDATE_COMMAND_UI_RANGE(nID,nLastID,pfn)该函数可以处理一组[命令用户接口对象]的外观;其中函数的原型如下:afx_msgvoidpfn(CCmdUI*pCmdUI)重要:CCmdUI中的m_nID成员表示不同的ID,因此可以利用它来进行区别处理。3、控件的通知消息从控件和子窗口发送到父窗口的WM_COMMAND通

5、知消息(即在发送命令消息中加入控件的通知码)。注意:在Window9x新控件中不再传送WM_COMMAND通知消息,而是发送WM_NOTIFY消息,但为了兼容,旧有的控件还是传送WM_COMMAND消息。例如:CEdit控件向父窗口发送EN_CHANGE通知代码的WM_COMMAND消息。注意:框架像传送其它WM_消息一样传送通知消息,但有一个例外,即由[按钮]控件发送的BN_CLICKED通知消息,被作为命令消息特别处理。㈠、WM_COMMAND其所对应的宏如下:①、ON_CONTROL(通知码,nI

6、D,fn)②、ON_CONTROL_RANGE(通知码,nFirstID,nEndID,fn)注意:这两个宏的应用和ON_COMMAND、ON_COMMAND_RANGE相同,所不同的是在宏前面加入[通知码]。注意:可以根据不同的控件的[通知码]派生出特定的宏,其所派生的宏一般为在[通知码]前面加上ON_。㈡、WM_NOTIFY其所对应的宏如下:①、ON_NOTIFY(通知码,nID,fn)其中函数的原型如下:afx_msgvoidfn(NMHDR*pNotifyStruct,LRESULT*resul

7、t)其中结构:typedefstructtagNMHDR{HWNDhwndFrom;//发送通知消息的控件的句柄;UINTidFrom;//发送通知消息的控件的ID;UINTcode;//通知码;}NMHDR;②、ON_NOTIFY_EX(通知码,nID,fn)表示一个消息在多个对象的成员函数中进行处理。其中函数的原型如下:afx_msgBOOLfn(UINTnID,NMHDR*pNotifyStruct,LRESULT*result)说明:它必须返回BOOL类型的数值,其意义和ON_COMMAND_E

8、X相同。③、ON_NOTIFY_RANGE(通知码,nFirstID,nEnd,fn)表示多个控件的通知消息在同一个函数中进行处理。其中函数的原型如下:afx_msgvoidfn(UINTnID,NMHDR*pNotifyStruct,LRESULT*result)说明:其意义和ON_COMMAND_RANGE相同。4、反射消息处理父窗口在处理控件窗口的通知消息WM_CTLCOLOR、WM_COMMAND、WM_NOTIFY时,会把该消息转

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。