MFC中PeekMessage的使用,非阻塞消息循环
2015-04-27 22:05
281 查看
在程序设计的时候经常要进行一个数据循环,比如播放音乐需要循环的向缓冲区里面写入数据,在这个时候比较通用的方法是建立一个线程做事情,但是有时候不想创建多线程就可以使用微软提供的PeekMessage方法,使用起来很简单,如下
通过这个方法就能够不阻塞windows的消息循环,从消息队列中取出消息并手动的进行转发,over
while(waveOutUnprepareHeader((HWAVEOUT)hWaveOut, lpWaveHdr, sizeof(WAVEHDR))!= MMSYSERR_NOERROR) { //循环清除缓冲区,如果成功表示播放完毕 //如果没有播放完毕则循环下面语句 if(bExit) break;//让循环也可以响应消息 MSG message; if(::PeekMessage (&message,NULL,0,0,PM_REMOVE)) { ::TranslateMessage (&message); ::DispatchMessage (&message); } }
通过这个方法就能够不阻塞windows的消息循环,从消息队列中取出消息并手动的进行转发,over
相关文章推荐
- 使用PeekMessage后,调用postquitmessage(0)不能退出消息循环的原因
- MFC消息循环2,分解RunModalLoop
- 深入探讨MFC消息循环和消息泵
- MFC为何使用消息映射表而不用虚函数?
- MFC消息循环和消息泵
- 编写一段程序,从标准输入读取string对象的序列直到连续出现两个相同的单词或者所有单词都读完为止。使用while循环一次读取一个单词,当一个单词连续出现两次是使用break语句终止循环。输出连续重复出现的单词,或者输出一个消息说明没有人任何单词是重复出现的。
- windows游戏编程 以PeekMessage为核心的消息循环体系
- MFC的自定义消息(用户消息)的定义与使用
- VS2010/MFC编程入门之三(Ribbon界面开发:使用更多控件并为控件添加消息处理函数)
- MFC使用SendMessage()发送自定义消息实现进程间通信
- 深入探讨MFC消息循环和消息泵
- mfc消息循环
- 深入探讨MFC消息循环和消息泵
- MFC中自定义消息使用
- MFC消息循环中几个函数的差异
- 深入探讨MFC消息循环和消息泵
- (转载)VS2010/MFC编程入门之五十四(Ribbon界面开发:使用更多控件并为控件添加消息处理函数)
- MFC用户自定义消息的使用
- 使用MFC 发送消息模拟按钮按下事件
- 深入探讨MFC消息循环和消息泵