读书人

在一个循环中如何样才可以等待一个消息

发布时间: 2013-02-15 15:46:56 作者: rapoo

在一个循环中怎么样才可以等待一个消息函数执行完毕后,再继续执行循环内容。
本帖最后由 co609 于 2013-01-21 17:03:06 编辑 在一个类中,有个while()循环,停止循环的标志在一个消息的响应函数中。问下怎么可以在收到消息后,执行消息响应函数中的内容,然后再继续执行while循环?
貌似while循环执行起来会将程序阻塞,然后就收不到消息了。
用pumpmessage貌似也不行,有时候会卡在那里不继续执行了。
[解决办法]

用state控制你的程序,

windows的消息机制,不能让程序“定”在那里,
要不断轮循消息,让消息响应。
[解决办法]
多线程~~~~~~
[解决办法]
在你的while循环中getmessage或者peekmessage,主线程让你while阻塞了所以消息都堆在消息队列里啊。
[解决办法]
但是如果在发送端用线程发送消息,为什么就会捕获不到,而用进程发就可以捕获到?

线程发?进程发?你指的是主线程和其他线程吧。

每个线程默认一个消息队列,你先确定你发的目的消息队列线程和你while在一个线程中。就能get到了啊。发送消息不是有hwnd么,你看看这个就知道了吧。

读书人网 >C++

热点推荐