📄 subject_37691.htm
字号:
<p>
序号:37691 发表者:风吹沙 发表日期:2003-04-27 14:35:09
<br>主题:如何消除闪烁?
<br>内容:这是我编写的一个实现字幕滚动的小程序,运行时发现屏幕闪烁得很厉害,请问大侠们如何消除产闪烁?谢谢。<BR>void CHelloView::OnDraw(CDC* pDC)<BR>{<BR> //TRACE("This is a little app.");<BR> CRect re;<BR> GetClientRect(re);<BR> pDC->TextOut(0,y,"hello");<BR> y=y-10;<BR> if(y==0)<BR> y=re.bottom;<BR>} <BR>void CHelloView::OnTimer(UINT nIDEvent) <BR>{<BR> // TODO: Add your message handler code here and/or call default<BR> Invalidate();<BR>}<BR>void CHelloView::OnTest() <BR>{<BR> // TODO: Add your command handler code here<BR> SetTimer(1,10,NULL);<BR><BR>}<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:neilgan 回复日期:2003-04-27 15:00:33
<br>内容:you should do this function in OnTimer. use CClientDC to get the DC.<BR><BR>if you use TextOut, it will still flash. you should create a memory DC and TextOut to the memory dc. Then use BitBlt to copy the content to the screen.<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-04-27 16:00:15
<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>
<font color=red>答案被接受</font><br>回复者:xiongli 回复日期:2003-04-27 16:54:59
<br>内容:neilgan,我还是又来给你当翻译吧:)<BR>你应该避免在OnTimmer里面调用你的Invalidate()函数,你应在用CClientDC来得到DC(设备上下文)<BR><BR>如果你用TextOut,他还是要闪烁的.你应该建立一个内存中的DC,然后在这个DC上用TextOut来输出,然后再用BiltBlt把这块内存拷贝到你的屏幕上去.
<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-04-27 17:25:00
<br>内容:服了你了,英语也好,vc 也强,不知道你是男是女,男的就叫你一声大哥,女的就叫一声大姐,200分给你了。
<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-04-27 21:09:01
<br>内容:you should do this function in OnTimer. <BR>你应该避免在OnTimmer里面调用你的Invalidate()函数,<BR><BR>这句话这样翻译?<BR>应该是你应该在OnTimer()里面做这个函数。<BR>我认为neilgan 的本意应该是把在OnDraw()函数里面做的程序放到OnTimer()函数里来做。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:xiongli 回复日期:2003-04-27 22:20:59
<br>内容:/*<BR>you should do this function in OnTimer. <BR>你应该避免在OnTimmer里面调用你的Invalidate()函数,<BR><BR>这句话这样翻译?<BR>应该是你应该在OnTimer()里面做这个函数。<BR>我认为neilgan 的本意应该是把在OnDraw()函数里面做的程序放到OnTimer()函数里来做。 <BR>*/<BR><BR>sorry,water_make说的是对的.<BR>其实最主要的是要先在内存上作图,然后拷贝过去.<BR>或者用双缓冲.<BR>参考这个<BR>http://www.vchelp.net/itbookreview/view_paper.asp?paper_id=676<BR><BR>给分你应该给neilgan了,我们都是跑腿的
<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-04-28 15:20:01
<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 + -