PostMessage是Windows API( 应用程序接口) 中的一个常用函数,用于将一条消息放入到 消息队列中。

数功能

  该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回,是异步消息模式。

消息队列里的消息通过调用GetMessage和PeekMessage取得。

原型与参数

 函数原型:B00L PostMessage(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam);  

 参数说明: hWnd:其窗口程序接收消息的窗口的句柄。可取有特定含义的两个值:  

                                      HWND_BROADCAST:消息被寄送到系统的所有顶层窗口,包括无效或不可见的

非自身拥有的窗口、被覆盖的窗口和弹出式窗口。

消息不被寄送到子窗口  

                                      NULL:此函数的操作和调用参数dwThread设置为当前线程的

标示符PostThreadMessage函数一样  

                        Msg:指定被寄送的消息。  

                        wParam:指定附加的消息特定的信息。  

                        Param:指定附加的消息特定的信息。  

 返回值:如果函数调用成功,返回非零值:如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。

速查信息

  Windows NT: 3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;

头文件:winuser.h;输入库:user32.lib

Unicode:在Windows NT环境下以Unicode和ANSI方式实现。

ON_MESSAGE是MFC里面的一个自定义消息映射宏(如果想了解MFC中自定义消息的工程,请自己在网上搜索一下,网上很多资料),

它的作用是绑定一个自定义的消息和该消息的响应函数。

原型与参数  

函数原型:ON_MESSAGE(message, memberFxn ) 

参数说明:message:消息的ID。  

                    memberFxn :映射message的消息函数,该函数的类型必须是以下类型的

                                                 afx_msg LRESULT (CWnd::*)(WPARAM, LPARAM)。  

备注:用户自定义消息通常定义在WM_USER(0x0400)至0x7FFF范围内,用户定义的任何消息都不是正规的windows窗口消息WM_MESSAGE 用户自定义消息必须明确地在程序中用ON_MESSAGE宏来声明,从而绑定一个消息响应函数  

注意:除了用户自定义消息,ON_MESSAGE很少用来绑定windows的command消息。  

举例:  

//.h  

…  

#define WM_MYMESSAGE (WM_USER + 100)  

… 

//发送消息

//.cpp  

…  

::PostMessage(g_hWndCaller, WM_MYMESSAGE, wParam, lParam);

//接收消息

//.cpp  

…  

BEGIN_MESSAGE_MAP(CMyWnd2, CWnd)   

ON_MESSAGE(WM_MYMESSAGE, OnMyMessage)  

END_MESSAGE_MAP()  …  

LRESULT CMyWnd2::OnMyMessage(WPARAM wParam, LPARAM lParam)  

{

  UNREFERENCED_PARAMETER(wParam);  

UNREFERENCED_PARAMETER(lParam);  // Handle message here.  

return 0;  

}  

PostMessaget与ON_MESSAGE相关推荐

  1. ON_MESSAGE,ON_COMMAND和ON_NOTIFY的区别和联系

    ON_COMMAND是菜单和工具栏项处理消息的宏 ON_MESSAGE是处理自定义消息的宏 ON_NOTIFY 是控件向其父窗口发送消息处理的宏 对这几个消息的理解要先了解一下Window消息的背景. ...

  2. 【转】ON_MESSAGE使用方法

    ON_MESSAGE响应的是自定义消息,有关自定义消息的处理请看如下步骤:  1.定义消息: 在CCDlg类的头文件中加入如下代码: #define WM_CUSTOMIZE WM_USER+1 头文 ...

  3. ON_COMMAND和ON_MESSAGE的区别

    在MFC应用程序中传输的消息有三种类型:窗口消息.命令消息和控件通知. 窗口消息(Window Message)一般与窗口的内部运作有关,如创建窗口.绘制窗口和销毁窗 口等.通常,消息是从系统发送到窗 ...

  4. [转]MFC中ON_COMMAND, ON_MESSAGE, ON_NOTIFY它们的区别

    ON_COMMAND是菜单和工具栏项处理消息的宏 ON_MESSAGE是处理自定义消息的宏 ON_NOTIFY  是控件向其父窗口发送消息处理的宏 对这几个消息的理解要先了解一下Window消息的背景 ...

  5. VC中自定义消息ON_MESSAGE的用法

    在一个对话框mark.cpp中,自定义一个消息, 首先在mark.cpp中添加 #define WM_DATA   WM_USER+100 之后再mark.h里 protected: // Gener ...

  6. ON_MESSAGE和ON_NOTIFY 区别

    ON_COMMAND是菜单和工具栏项处理消息的宏 ON_MESSAGE是处理自定义消息的宏 ON_NOTIFY 是控件向其父窗口发送消息处理的宏 对这几个消息的理解要先了解一下Window消息的背景. ...

  7. 终极理解ON_MESSAGE和ON_NOTIFY

    ------<两种消息发送>-------------------- SendMessage()----> ON_MESSAGE(注册的消息)              ON_NOT ...

  8. python---websocket的使用

    一:简介 推文:WebSocket 是什么原理?为什么可以实现持久连接? 推文:WebSocket:5分钟从入门到精通(很好) WebSocket协议是基于TCP的一种新的协议.WebSocket最初 ...

  9. MFC最小化到系统托盘

    在VC++中,想实现将MFC最小化到系统托盘,需要调用NOTIFYICONDATA类,并注册相应的消息,以下详细讲解如何实现: 第一步,声明一个NOTIFYICONDATA类,也就是NOTIFYICO ...

最新文章

  1. socket的长连接与短连接
  2. python linux arm_[Python]python for ARM/LINUX
  3. SecureCRT自动登录
  4. 每天一个linux命令(46):vmstat命令
  5. WinForm 捕获最小化事件
  6. php mysql_fetch_array mysql_fetch__php提示Warning:mysql_fetch_array() expects的解决方法
  7. C语言学习书籍推荐《C语言程序设计 现代方法(第2版)》下载
  8. 微软加入Linux基金会共建开源生态,并对谷歌加入.NET社区的举措表示欢迎
  9. cal日历工具的用法
  10. 31. HTTP 与 HTTPS 区别
  11. 程序相关概念及OS Linux发行版
  12. python破解excel进入密码(指定密码字符)
  13. C# libUSBDotNet 操作USB
  14. 百度AI开放平台,共建AI生态
  15. Python3+wxPython3+robotframwork+ride3安装步骤
  16. 点餐小程序系统/基于微信小程序的点餐系统/点餐平台网站
  17. ikbc机械键盘打字出现重复_再也不怕半夜打字影响家人了——ikbc c104机械键盘评测...
  18. IDEA安装和使用教程,idea 安装本地插件
  19. ubuntu16.04安装破解matlab2016详细教程
  20. IBM DB2数据库实战培训课程(2天速成版)视频教程

热门文章

  1. 操作符( ˃᷄˶˶̫˶˂᷅ )
  2. selenium登录 爬取淘宝商品信息
  3. 基于SpringBoot实现微信消息推送
  4. NR PDCCH CCE to REG 交织图解
  5. ArcGIS属性表的计算
  6. 交换瓶子(蓝桥杯真题)
  7. 2021第二季度海外消费者消费者画像分析
  8. 正态分布检验:检验序列数据是否符合正态分布
  9. RTT WK2412 spi-uart
  10. CF76A.Gift [最小生成树]