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.
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

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
msaliAuthor Commented:
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....

Check if this progress bar helps you:
Big Business Goals? Which KPIs Will Help You

The most successful MSPs rely on metrics – known as key performance indicators (KPIs) – for making informed decisions that help their businesses thrive, rather than just survive. This eBook provides an overview of the most important KPIs used by top MSPs.

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.
I am not trying to deviate from topic. I am just trying to help the other way.
msaliAuthor Commented:
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.
Not at all, if you can share the solution. that would help lot many users who navigate to this thread
msaliAuthor Commented:
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)

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


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Nice, solution. Thanks for sharing the knowledge.
Please post a comment in CS that you intend to get the refund back but the question to be put in PAQ
Question is PAQed and 250 points refunded.

Experts Exchange Moderator
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic Classic

From novice to tech pro — start learning today.