社区
C++ 语言
帖子详情
在WndProc里面的某个消息处理中发送一个消息
zyq_123
2012-02-05 10:01:51
在WndProc里面的某个消息处理中发送一个消息,新的消息进入队列,那发送消息之后的语句是否继续执行?
WM_消息:
SendMessage(...);
语句1;
语句2;
……
return 0;
SendMessage之后的语句还执行吗?是先执行完SendMessage发送的消息回来执行,还是怎样?
...全文
181
15
打赏
收藏
在WndProc里面的某个消息处理中发送一个消息
在WndProc里面的某个消息处理中发送一个消息,新的消息进入队列,那发送消息之后的语句是否继续执行? WM_消息: SendMessage(...); 语句1; 语句2; …… return 0; SendMessage之后的语句还执行吗?是先执行完SendMessage发送的消息回来执行,还是怎样?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
程序员小迷
2012-02-06
打赏
举报
回复
[Quote=引用 14 楼 zyq_123 的回复:]
引用 13 楼 cxsjabcabc 的回复:
SendMessage只是一条语句,执行完,后面的会继续执行的。
SendMessage当然是一条语句,问题是SendMessage的消息处理。
[/Quote]
哦,问的是这个啊。
刚看了MSDN,是这样的:
Sends the specified message to a window or windows. The SendMessage function calls the window procedure for the specified window and does not return until the window procedure has processed the message.
是等到消息处理完才返回。
zyq_123
2012-02-06
打赏
举报
回复
[Quote=引用 13 楼 cxsjabcabc 的回复:]
SendMessage只是一条语句,执行完,后面的会继续执行的。
[/Quote]
SendMessage当然是一条语句,问题是SendMessage的消息处理。
程序员小迷
2012-02-06
打赏
举报
回复
SendMessage只是一条语句,执行完,后面的会继续执行的。
面包大师
2012-02-05
打赏
举报
回复
[Quote=引用 10 楼 zyq_123 的回复:]
引用 8 楼 czh3642210 的回复:
引用 7 楼 zyq_123 的回复:
引用 5 楼 visualeleven 的回复:
以SendMessage来发送消息,是非队列消息,直接到窗口过程中,并不进入消息队列中,处理完成以后SendMessage才返回。
那进队列的消息呢?是执行完回来,还是怎样?
进队列的消息不是同步的,所以不需要执行完了再回来
那是不……
[/Quote]
是的。。。。
Lactoferrin
2012-02-05
打赏
举报
回复
[Quote=引用 10 楼 zyq_123 的回复:]
引用 8 楼 czh3642210 的回复:
引用 7 楼 zyq_123 的回复:
引用 5 楼 visualeleven 的回复:
以SendMessage来发送消息,是非队列消息,直接到窗口过程中,并不进入消息队列中,处理完成以后SendMessage才返回。
那进队列的消息呢?是执行完回来,还是怎样?
进队列的消息不是同步的,所以不需要执行完了再回来
那是……
[/Quote]
yes
zyq_123
2012-02-05
打赏
举报
回复
[Quote=引用 8 楼 czh3642210 的回复:]
引用 7 楼 zyq_123 的回复:
引用 5 楼 visualeleven 的回复:
以SendMessage来发送消息,是非队列消息,直接到窗口过程中,并不进入消息队列中,处理完成以后SendMessage才返回。
那进队列的消息呢?是执行完回来,还是怎样?
进队列的消息不是同步的,所以不需要执行完了再回来
[/Quote]
那是不是进队列消息发完就执行下面的语句不用等待?
zyq_123
2012-02-05
打赏
举报
回复
[Quote=引用 6 楼 rrrfff 的回复:]
引用 5 楼 visualeleven 的回复:
以SendMessage来发送消息,是非队列消息,直接到窗口过程中,并不进入消息队列中,处理完成以后SendMessage才返回。
正解
如果处理过程中程序崩溃就没法返回了
[/Quote]
是的,要是处理过程中停电,也没法返回的!:)那进队列消息,是执行完回来,还是怎样?
面包大师
2012-02-05
打赏
举报
回复
[Quote=引用 7 楼 zyq_123 的回复:]
引用 5 楼 visualeleven 的回复:
以SendMessage来发送消息,是非队列消息,直接到窗口过程中,并不进入消息队列中,处理完成以后SendMessage才返回。
那进队列的消息呢?是执行完回来,还是怎样?
[/Quote]
进队列的消息不是同步的,所以不需要执行完了再回来
zyq_123
2012-02-05
打赏
举报
回复
[Quote=引用 5 楼 visualeleven 的回复:]
以SendMessage来发送消息,是非队列消息,直接到窗口过程中,并不进入消息队列中,处理完成以后SendMessage才返回。
[/Quote]
那进队列的消息呢?是执行完回来,还是怎样?
RLib
2012-02-05
打赏
举报
回复
[Quote=引用 5 楼 visualeleven 的回复:]
以SendMessage来发送消息,是非队列消息,直接到窗口过程中,并不进入消息队列中,处理完成以后SendMessage才返回。
[/Quote]
正解
如果处理过程中程序崩溃就没法返回了
Eleven
2012-02-05
打赏
举报
回复
以SendMessage来发送消息,是非队列消息,直接到窗口过程中,并不进入消息队列中,处理完成以后SendMessage才返回。
面包大师
2012-02-05
打赏
举报
回复
[Quote=引用 2 楼 zyq_123 的回复:]
引用 1 楼 czh3642210 的回复:
还执行,先执行完SendMessage发送的消息回来执行
是不是就是说先执行完SendMessage发送的消息,完后回来执行余下的语句?
[/Quote]
是的
面包大师
2012-02-05
打赏
举报
回复
SendMessage()函数将消息发送到目标窗口,并等待目标窗口过程函数将消息处理完毕才返回!
zyq_123
2012-02-05
打赏
举报
回复
[Quote=引用 1 楼 czh3642210 的回复:]
还执行,先执行完SendMessage发送的消息回来执行
[/Quote]
是不是就是说先执行完SendMessage发送的消息,完后回来执行余下的语句?
面包大师
2012-02-05
打赏
举报
回复
还执行,先执行完SendMessage发送的消息回来执行
Windows
消息
传递机制详解
Windows是
一个
消息
(Message)驱动系统。Windows的
消息
提供了应用程序之间、应用程序与Windows系统之间进行通信的手段。应用程序想要实现的功能由
消息
来触发,并且靠对
消息
的响应和
处理
来完成。必须注意的是,
消息
...
c#
中
的
消息
处理
函数和vc
中
的
消息
处理
函数区别
} 可以看到,此函数第一步不再需要判断此
消息
是属于那个控件的,每个控件(包括父窗口本身),它只
处理
属于自己的
消息
,不再沿用vc
中
的
消息
机制,在某个
消息
发送
到
一个
类前,允许其它类试着
处理
它。 对于
Wnd
Proc
...
深度解析vc
中
的
消息
例如,单击鼠标、改变窗口尺寸、按下键盘上的
一个
键都会使Windows
发送
一个
消息
给应用程序。
消息
本身是作为
一个
记录传递给应用程序的,这个记录
中
包含了
消息
的类型以及其他信息。例如,对于单击
深入了解QT
消息
循环及线程相关性
深入了解QT
消息
循环及线程相关性
如何在C#应用程序和DLL
中
使用
消息
在C#是一种类似 Java 的完全面向对象的高级编程语言,其
处理
过程采用事件驱动方式,但在实际的使用过程
中
,有时候通过调用系统原有的
消息
处理
起来会更简单,特别是在
处理
与DLL文件的交互时,实践证明的确是非常方便...
C++ 语言
64,650
社区成员
250,478
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章