windows的消息机制
关于GetMessage这个函数有这样的解释:如果消息队列中没有任何消息(即没有用户输入),这个函数会一直等待到消息队列中有消息,并从消息队列中取出消息!
下面是一段程序代码:
while(!GetMessage(&msg , NULL , 0 , 0))
{
TranslateMessage(&msg) ;
DispatchMessage(&msg) ;
}
如果这段代码按照上面的那个讲解,开始的时候应用程序的消息队列中如果没有任何消息,那么GetMessage函数会一直等待消息队列中有消息,也就是可以理解为暂时是无法执行这个while的循环,那么请问一下什么时候才开始执行这个while的循环?也就是说系统是如何将消息放到应用程序消息队列中的。
如果上面那段代码我这样写是否是可以的呢?
do{
TranslateMessage(&msg) ;
DispatchMessage(&msg) ;
}while(!GetMessage(&msg , NULL , 0 , 0)) ;
这两种写法哪一种是比较好的?
[ 本帖最后由 JZY0801 于 2011-3-7 14:37 编辑 ]