像WisMencoder压缩时候的进度条

来源:百度知道 编辑:UC知道 时间:2024/05/17 21:55:27
用MFC去实现
网上有找到在 OnPaint 里面动态添加CProgressCtrl
但是缺点就在如果快速给进度条的列赋值的时候进度条会闪烁,连进度条底下的文字就会出现.
有什么方法能去除掉闪烁吗?
匿名大大 呵呵 没错说双缓冲我只是知道,把需要画的东西画在内存上 在一次性画在程序界面上。
不知道我说的对吗?
在CListCtrl的OnInitDialog()里面创建就行了吗?
对不起,我没说清楚,要的是在CLsitCtrl里面嵌入CProgressCtrl这个
=====================================================================================
PS:CProgressCtrl不是进度条的控件?还有派生吗?
CProcessBar我这里面没有这个名字的.
CListCtrlEx :
http://www.namipan.com/d/ListCtrlEx.rar/00451aec2da7edf9e0267e2b9242687a3b1861e130050000
控件的代码在这里可以帮我改一下吗?谢谢您了!!貌似百度回答不能回答很多次,如果回答不了了,可以用网页上的信息教我吗?谢谢了!
===================
已经发给你了!!

可以,你首先把内容全部Draw到你创建的一个DC上,然后用Bitblt把这个DC上的内容全部Draw到OnPaint传入的pDc上就可以消除闪烁了。(其实就是用双缓冲去消除)
=================
哎,我的意思是你要重载CProgressCtrl的OnPaint啊
================
你现在代码是怎样我也不清楚,反正你就别在
CDialog里面的OnPaint里添加CProcessCtrl的创建代码就对了
把它改到OnInitDialog里创建
给你说双缓冲估计也是浪费时间……
=======================
你说的双缓冲的确是那样没错
不过CListCtrl里就只有OnCreate了~~~没OnInitDialog的
不知你的CProgressCtrl是派出于哪个了~~CProcessBar么?还是CListCtrl?
==================
你能提供一下整个项目程序吗?(保证代码保密)
LiselsiaCesarini@qq.com
如果不方便也没关系,这闪的主要原因就在OnPain里,每次OnPain的时候都删除了进度条控件,然后又重新创建,这不但效率低,而且还会导致闪屏,一个较好的做法时创建这个CListCtrl条目的时候才创建进度条,在移除条目的时候才删除进度条,这样就不会导致闪屏了