?
Solved

Flikering problem in labels & Images

Posted on 2003-11-06
11
Medium Priority
?
401 Views
Last Modified: 2013-12-26
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.
0
Comment
Question by:msali
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 4
11 Comments
 
LVL 18

Expert Comment

by:Sethi
ID: 9694307
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
 

Author Comment

by:msali
ID: 9699162
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
 
LVL 18

Expert Comment

by:Sethi
ID: 9699194
Check if this progress bar helps you:
http://www.freevbcode.com/ShowCode.Asp?ID=1841
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:msali
ID: 9706573
Yes I have seen this progress bar.. but please my question is not regarding Progress bar it is about flickering.....

thanks a lot.
0
 
LVL 18

Expert Comment

by:Sethi
ID: 9706657
I am not trying to deviate from topic. I am just trying to help the other way.
0
 

Author Comment

by:msali
ID: 9776747
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
 
LVL 18

Expert Comment

by:Sethi
ID: 9776899
Not at all, if you can share the solution. that would help lot many users who navigate to this thread
0
 

Accepted Solution

by:
msali earned 0 total points
ID: 9784922
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
 
LVL 18

Expert Comment

by:Sethi
ID: 9785042
Nice, solution. Thanks for sharing the knowledge.
0
 
LVL 18

Expert Comment

by:Sethi
ID: 9785044
Please post a comment in CS that you intend to get the refund back but the question to be put in PAQ
0
 

Expert Comment

by:YensidMod
ID: 9785098
Question is PAQed and 250 points refunded.

YensidMod
Experts Exchange Moderator
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Have you ever wanted to restrict the users input in a textbox to numbers, and while doing that make sure that they can't 'cheat' by pasting in non-numeric text? Of course you can do that with code you write yourself but it's tedious and error-prone …
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Suggested Courses

765 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question