Flikering problem in labels & Images

Hi experts,
I am making a progress bar OCX with my custome properties and methods and image.

Now everything is done but when I update the value to be displayed it flickers like anything... I have also added a custom image that even a user can provide to display an image of their choice ..

Even that flickers like anything while updating.

I am almost done with my project but unfortunatelly this flickering problem is delaying my delivery.

Thanks for your help.
msali.
msaliAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
msaliConnect With a Mentor Author Commented:
Hi,
Well the solution that I used is combination of StrechBlt and BitBlt.

At the time of initialization I place the image that I want to display in the Pbar in iBarSrc Picture Box.

At the same time I strech that image in iBarScale to make it the same heitht and width as my final iBar picture box

Finally when an increment is called by setting the pb.value property of my pb I set the progress bar using bitblt from my iBarScale picture box.


and booooooooom as a result no flickering at all no matter how may doevents you do or how quick your loop is as i am now using the double buffering principal on my control.



Set the Scale Bar:

 RetValue = StretchBlt(iBarScale.hdc, 0, 0, iBarScale.ScaleWidth, iBarScale.ScaleHeight, iBarSrc.hdc, 0, 0, 1, iBarScale.ScaleHeight, vbSrcCopy)


Set the progress Bar
OneUnit = iBar.ScaleWidth / m_Max
RetValue = BitBlt(iBar.hdc, 0, 0, m_Value * OneUnit, iBar.ScaleHeight, iBarScale.hdc, 0, 0, vbSrcCopy)





-------------------------------------------
Sethi,
Thanks a lot for lett me wrap up the question... you are a real sport.

msali.

0
 
SethiCommented:
Use LockWindowUpdate API before and after the processing starts:

Public Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long

Pass the Hwnd of the windows where the processing is going to start just before the code where processing starts like:
LockWindowUpdate Me.Hwnd

Just aftre the last line of code pass 0 as value:
LockWindowUpdate 0
0
 
msaliAuthor Commented:
Hi,
I have already tried it but when I use this API and test my app my Progress bar does not move till I move my form and then it shows 100% done.  If I use DoEvents with this API the flickering starts again.

If Use this API and put 2 instances of my control on the form.. the whole screen goes buzark and starts acting funny and starts blinking....

0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
SethiCommented:
Check if this progress bar helps you:
http://www.freevbcode.com/ShowCode.Asp?ID=1841
0
 
msaliAuthor Commented:
Yes I have seen this progress bar.. but please my question is not regarding Progress bar it is about flickering.....

thanks a lot.
0
 
SethiCommented:
I am not trying to deviate from topic. I am just trying to help the other way.
0
 
msaliAuthor Commented:
Hi,
After waiting for some time and doing my own research I have finally found a solution.

Thanks for your support.

I hope you would not mind if I ask my community support to delete this quesiton.

Waiting for your acknowledgment.

Thanks again.
0
 
SethiCommented:
Not at all, if you can share the solution. that would help lot many users who navigate to this thread
0
 
SethiCommented:
Nice, solution. Thanks for sharing the knowledge.
0
 
SethiCommented:
Please post a comment in CS that you intend to get the refund back but the question to be put in PAQ
0
 
YensidModCommented:
Question is PAQed and 250 points refunded.

YensidMod
Experts Exchange Moderator
0
All Courses

From novice to tech pro — start learning today.