PostMessage和SendMessage的区别
来源:互联网 发布:orc识别软件 编辑:程序博客网 时间:2024/06/06 06:36
PostMessage:不需要指定接收消息的窗口,但是消息只能发往本窗口
::PostMessage:需要指定接收消息的窗口,但是消息可以发往任意窗口
SendMessage:将消息直接发送给窗口,并调用该窗口的窗口过程进行处理。在窗口过程对消息处理完毕之后,该函数才返回(SendMessage发送的消息不进入队列)。
PostMessage函数将消息放入创建窗口的线程相关联的消息队列后立即返回。除了这两个函数之外,还有一个
PostThreadMessage函数,用于向线程发送消息,对于线程消息,MSG结构体中的hwnd成员为NULL。
SendMessage是阻塞的。PostMessage不是的。SendMessage会等发去的消息被处理了才返回。PostMessage则只负责把消息放到相应的消息队列中就返回了,它不必等待消息的处理。
在使用上有一个要注意的地方。
在MFC中每个从CWnd继承来的类,都有两个成员函数SendMessage,PostMessage。
在Windows SDK中也有两个函数SendMessage,PostMessage。这是有区别的。
下面均以PostMessage为例来说明。
Windows SDK中的PostMessage有四个参数
BOOL PostMessage(
);
但是CWnd的成员函数PostMessage只有三个参数
BOOL PostMessage(
);
Windows SDK中的PostMessage的第一个参数就是发送消息的目的窗口的句柄。
而CWnd的PostMessage则把消息发送到本窗口对象的消息队列里。
如果发送的消息,收不到,就是没有注意到这些区别。
它直接使用成员函数PostMessage就想把菜单消息发送到另一个窗口中,让处理菜单命令的
那个窗口处理菜单消息,显然消息是发送到了本窗口对象的消息队列里,而本窗口对象又不
处理该菜单命令。
正确的使用方法应该是:
(1)用目的窗口对象的成员函数PostMessage
(2)使用SDK中的PostMessage,并在第一个参数上写上目的窗口的句柄
比如:PostMessage(pWnd->GetSafeHwnd(),......
需要注意的是,这时候最好写成::PostMessage(pWnd->GetSafeHwnd(),......形式
而CWnd的PostMessage则把消息发送到本窗口对象的消息队列里。
如果发送的消息,收不到,就是没有注意到这些区别。
它直接使用成员函数PostMessage就想把菜单消息发送到另一个窗口中,让处理菜单命令的
那个窗口处理菜单消息,显然消息是发送到了本窗口对象的消息队列里,而本窗口对象又不
处理该菜单命令。
正确的使用方法应该是:
(1)用目的窗口对象的成员函数PostMessage
(2)使用SDK中的PostMessage,并在第一个参数上写上目的窗口的句柄
0 0
- SendMessage 和 PostMessage 的区别
- PostMessage和SendMessage的区别
- PostMessage和SendMessage的区别
- SendMessage 和 PostMessage 的区别
- PostMessage 和SendMessage 的区别
- PostMessage和SendMessage的区别
- PostMessage和SendMessage的区别
- PostMessage和SendMessage的区别
- SendMessage 和 PostMessage 的区别
- PostMessage和SendMessage的区别
- SendMessage和PostMessage的区别
- SendMessage 和 PostMessage 的区别
- PostMessage和SendMessage的区别
- SendMessage和PostMessage的区别
- SendMessage 和 PostMessage 的区别
- PostMessage和SendMessage的区别
- sendmessage和postmessage的区别
- SendMessage和PostMessage的区别
- 画弧线
- 010 Comparison
- Geode分布式内存数据库rest api 之PHP版本
- 轻轻放下和不容侵犯
- keyChain使用的
- PostMessage和SendMessage的区别
- iOS8 高德地图SDK MAMapView无法定位的问题
- TOP100SUMMIT
- WelcomeJFrame
- 联网显示图片
- android 布局的性能优化
- Majority Element
- gdb强行生成core文件
- 没有任何关系