PostMessage MDSN理解

PostMessage

这个函数放置一个消息到与线程创建的窗口相关联的消息队列后立刻返回,不等待线程处理该消息;
该消息可以通过 GetMessage or PeekMessage从消息队列中取回;

BOOL PostMessage(
  HWND hWnd, 
  UINT Msg, 
  WPARAM wParam, 
  LPARAM lParam 
); 

HWND hWnd ;

HWND_BROADCAST 该消息被投递到所有的顶层窗口(简单点说就是正在运行的所有程序的窗口),但是不会被投递到子窗口;
NULL ,表示只把消息投递到发送消息所在线程的消息队列;


如果使用异步函数( PostMessageSendNotifyMessage)发送WM_USER(也就是系统要用到的消息)时,不能够包含指针信息(我理解为鼠标指针),否则这个消息投递将会失败;这个函数投递消息后,不会等待接收线程处理该消息,而是立即返回,并且同时释放投递时用到的内存空间;(对此处个人理解为以下处理的)

个人理解:
换句话说,一般我们使用 PostMessage投递消息时,不会给lParam这个参数一个地址值,也就是不指向内存空间,因为如果是程序之间传递,那么会在所有程序都能访问的公共内存中开辟一块内存,拷贝保存刚刚lparam所指向的地址中的内容,然后PostMessage返回时,会立即释放掉这块内存,所以一般我们不使用PostMessage投递块数据;投递数据块使用SendMessage

有错的地方,希望纠正,虚心学习哈!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值