📄 subject_66395.htm
字号:
<p>
序号:66395 发表者:拉拉 发表日期:2003-12-24 11:42:29
<br>主题:怎么在一个按纽响应事件中结束另一个按纽启动的循环
<br>内容:在按纽《开始》中启动一个循环,怎么能用另外一个按纽《停止》来中断这个循环?<BR><BR>P。S。不想用定时器
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:㊣唐山★唐山㊣ 回复日期:2003-12-24 11:45:09
<br>内容:用一个全局变量<BR>当按纽《停止》按下时,给全局变量赋值<BR>在循环里判断全局变量的值<BR>符合条件则break;
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:ddfff 回复日期:2003-12-24 11:46:24
<br>内容:同上<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:拉拉 回复日期:2003-12-24 11:59:12
<br>内容:不行哦,我定义了全局变量BOOL stop;<BR>然后在《停止》事件中设置stop = true ;<BR>《开始》的循环里<BR> if(stop) <BR> break;<BR>可是不行,好象还是在循环结束以后,才调用到停止的响应程序。。。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:有象 回复日期:2003-12-24 14:58:26
<br>内容:应该是可以的啊,方法是设全局变量temp = 0,<BR>然后在开始中判断temp的值是多少再循环。<BR>for(int i = 0;i<10000;i++)<BR>{<BR> if(temp !=0) break;<BR>..........<BR>.........<BR>}<BR>是上面那样不行的吧,<BR>那您将此循环改写为while(temp){}就可以了。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:拉拉 回复日期:2003-12-24 15:54:22
<br>内容:就是不行啊<BR>定义全局变量 bool stop;<BR>我的《开始》响应程序里是这样的<BR><BR> while (!stop)<BR> {<BR> if(!cf.Read(buf,bufsize)) <BR> {<BR> return;<BR> }<BR><BR> bmp.Get((unsigned char*)buf,bufsize);<BR> InvalidateRect(r,false);<BR> UpdateWindow();<BR> }<BR><BR>然后在《停止》响应程序里使 stop = true;<BR><BR>就是不行,就是《停止》按纽的程序还是在循环结束后才得到调用<BR><BR>是不是所谓消息队列的问题,<BR>《开始》按纽里所有的循环作为一个消息进行处理完了<BR>才能处理《结束》按纽发出的消息?!!!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:有象 回复日期:2003-12-24 17:20:02
<br>内容:您的stop有初值吗?没有是不行的啊,
<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>回复者:林建华 回复日期:2003-12-25 14:14:12
<br>内容:在循环前定义<BR> MSG pMsg;<BR> pMsg.hwnd = this->m_hWnd;<BR> pMsg.lParam = pMsg.wParam = 0;<BR> pMsg.message = WM_PAINT;<BR> pMsg.time = 0;<BR><BR>在循环里添加<BR> PeekMessage(&pMsg, NULL, 0, 0, PM_REMOVE);<BR> {<BR> TranslateMessage(&pMsg);<BR> DispatchMessage(&pMsg);<BR> }<BR><BR>就好了
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:拉拉 回复日期:2003-12-25 15:55:09
<br>内容:to 有象,我当然有初值为false了!!!<BR><BR><BR><BR>林建华,赞!!!!!!!!!!!!!!!<BR>虽然不是很明白,确实有效!<BR>对于消息分发的函数我不是很了解,<BR>我在看MSDN,你大概介绍一下好吗?谢谢咯~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:拉拉 回复日期:2003-12-25 17:15:37
<br>内容:还有一个问题应该是类似的<BR><BR>也是循环里,把数值不断赋给对话框上的一个编辑框<BR>也是一样,总是等把循环完成以后,才能发最后一个数过去<BR>怎么办?<BR>我想应该是在循环里加上SendMessage(),把编辑框更新的消息不断发出去吧<BR>是不是应该这么做呢?、<BR>而且,我不知道应该用什么消息参数,WM_???
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:林建华 回复日期:2003-12-26 12:01:39
<br>内容:用UpdateData就可以了,不需要发消息的<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:拉拉 回复日期:2003-12-26 23:04:50
<br>内容:用UpdateData了可是不行<BR>结果把这几句拷进循环,居然就可以了,HOHOHO~~~~~~~~~~~~~~
<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 + -