ON_MESSAGE的使用(转)

摘要:
对于每个用户定义的消息,messagemap_message宏中必须有一个ON,它定义了映射到message处理函数的语句。Definition://Macro头文件中的定义用户定义消息:#defineWM_用户定义消息注册BEGIN在MYMESSAGE中//源文件_ message_MAPON_ MESSAGEEND_ message_MAP()//用户定义消息响应函数在头文件中//在MyWnd2classdeclarationafx_ msgLRESULTOnMyMessage中声明;//在源文件LRESULTCMyWnd2::OnMyMessage中实现用户定义的消息响应函数{UNREFERENCED_PARAMETER;UNREFERECED_PARAMETER;//Handlemessagehere.return0;}如何使用它?

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Date: 20180815

msdn:https://msdn.microsoft.com/query/dev12.query?appId=Dev12IDEF1&l=ZH-CN&k=k(ON_MESSAGE);k(DevLang-C%2B%2B);k(TargetOS-Windows)&rd=true

ON_MESSAGE(message, memberFxn)

指定哪一个函数用来处理这个用户定义消息;

头文件:  afxmsg_.h

参数:  

message      消息ID,这里指的是用户定义消息的ID

memberFxn     消息映射消息处理函数的名称;

          函数的类型必须是:  afx_msg LRESULT (CWnd::*)(WPARAM, LPARAM);

备注:

  用户定义消息不属于任何一种标准Windows WM_MESSAGE消息。当选择消息标识时,必须使用某一范围的值:WM_USER(0x0400)到0x7FFF或WM_APP(0x8000)到0xBFFF。

  对于每一个用户定义消息,在message map中必须要有一个ON_MESSAGE宏定义语句来映射到一个消息处理函数。

注意:除了用户定义消息外,ON_MESSAGE还处理较为不常见的Windows消息。


定义:

// 头文件中宏定义用户定义消息:
#define
WM_MYMESSAGE (WM_USER + 100)
// 源文件中进行用户定义消息注册
BEGIN_MESSAGE_MAP(CMyWnd2, CWnd) ON_MESSAGE(WM_MYMESSGAE, OnMyMessage) END_MESSAGE_MAP()
// 头文件中进行用户定义消息响应函数的声明
//
inside the CMyWnd2 class declaration afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
// 源文件中进行用户定义消息响应函数的实现
LRESULT CMyWnd2::OnMyMessage(WPARAM wParam, LPARAM lParam) { UNREFERENCED_PARAMETER(wParam); UNREFERENCED_PARAMETER(lParam);
// Handle message here. return 0; }

怎么使用呢?

1. 如果用户定义消息所在的类是由CWnd类派生的,且在本类中进行调用,那么我们可以调用CWnd::SendMessage()函数;若希望在不同的情况下发送用户定义消息,只需要将SendMessage函数的参数加以标识就ok了,一种方法就是在消息响应函数中,使用条件语句进行不同情况的处理。

2. 如果希望在其它类中响应这个用户定义消息,那么我们可以选择使用win32 的API。比如:当用户定义消息在CMainFrame中,而它对应的响应函数在其它类当中,需这样做:

::SendMessage(::AfxGetMainWnd()->m_hWnd, WM_MYMSG, 0, 0);

注:或选择使用PostMessage。

————》》》》》SendMessage与PostMessage::待做我还是选择暂时学习前辈的

免责声明:文章转载自《ON_MESSAGE的使用(转)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇记录一下遇到的问题 java将json数据解析为sql语句HTTP 错误 404.2 Not Found 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

redis make报错

所以添加参数:makeMALLOC=libc第二种类型:makeCFLAGS=“-march=x86-64”在README中有此段。...

Dapper系列之一:Dapper的入门(多表批量插入)

Dapper只是一个完全开源的代码文件。您可以在项目中的任何位置实现数据到对象ORM操作,其大小小,速度快。Dapper的优点:1。Dapper是一个轻量级ORM类。该代码是一个SQLMapper.cs文件,编译后通常约为40k dll;2.Dapper,快点,你为什么说得快?因为Dapper的速度接近IDataReader,所以列表的数据比DataTabl...

ElasticSearch的高级复杂查询:非聚合查询和聚合查询

它与SQL中的GROUPBY类似,但功能更强大。为了更好地理解这个概念,请参阅https://blog.csdn.net/dm_vincent/article/details/42387161Buckets(Bucket):满足特定条件的文档集合。度量:为存储桶中的文档计算的统计信息。一般来说,它可以大致转换为SQL:从tablegroupbyname中选择...

git使用说明

初次使用请参考百度,google,博客园。1修改文件并提交到github[luwenwei@dev01v~/git/helww/labs]$vimREADME[luwenwei@dev01v~/git/helww/labs]$gitdiffdiff--gita/READMEb/READMEindex39d8172..464c83f100644---a/REA...

10 TCP限流技术

TCP流限制的原因是接收方可以完全接受消息,以确保数据安全而不会丢失。首先,窗口机制引入了发送方和接收方都有一个窗口。当发送方发送数据时,将发送落入窗口中的数据。当接收器接收到数据时,落入接收器窗口的数据将被接受。可以看出,流量会受到窗口大小II的限制。滑动窗口技术1TCP滑动窗口技术通过动态改变窗口大小来调整两台主机之间的数据传输。...

前端导航站点(PC端)

本篇LIST1.项目预览地址:项目预览地址2.项目完成效果:3.HTML布局拆分1.tip提示部分2.title标题部分3.搜索栏部分找的是codepen上现成的搜索框样式,包含搜索框展开收缩的特效。...