⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_52019.htm

📁 vc
💻 HTM
字号:
<p>
序号:52019 发表者:圆锥曲线 发表日期:2003-09-06 18:26:30
<br>主题:关于PeekMessage()的提问,请大家帮忙解释一下
<br>内容:int PASCAL WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;MSG msg;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if ( !InitWindow( hInstance, nCmdShow ) )return FALSE;<BR>&nbsp;&nbsp;&nbsp;&nbsp;while(1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(PeekMessage(&amp;msg, NULL, 0, 0, PM_REMOVE))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TranslateMessage(&amp;msg); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DispatchMessage(&amp;msg);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(bActive)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{/**/}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;return msg.wParam;<BR>}<BR>请问上述代码中peekMessage()是干什么的?这段消息处理代码的作用是什么?请大家费心详细解释一下!谢谢。
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:iamhere 回复日期:2003-09-06 18:43:24
<br>内容:PeekMessage检查消息队列,如果有消息则取出放在msg中,PM_REMOVE标志表示取出后将该消息从消息队列中删除<BR>TranslateMessage用以将一些虚拟按键消息(virtual-key messages )转义为字符消息(character messages)<BR>DispatchMessage将消息派发给当前程序处理<BR><BR><BR>这段消息处理代码的作用就是不断的检查消息队列中是否有消息。有的话取出来(PeekMessage),经过转义(TranslateMessage)后,派发给程序处理(DispatchMessage)。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:xiongli 回复日期:2003-09-08 18:13:44
<br>内容:一般来说<BR>getmessage会阻塞。也就是说没有消息进来的时候,这个函数不会返回<BR>peekmessage不会阻塞,每次调用立刻返回。<BR>一般来说,程序消息跟消息之间有比较大的空闲时间。如果用getmessage,这段时间就被浪费了,不能用来执行程序,因为getmessage不会返回。这个时候就可以用peekmessage,peekmessage返回后有消息就处理消息,否者就利用这个空闲时间处理一个比较小的函数,比如<BR>else if(bActive)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{/**/}<BR>这个里面的
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -