473,394 Members | 1,770 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,394 software developers and data experts.

Weird refresh/paint situation

I'm drawing graphics using the Graphics object one can grab in a Form's
Paint event. But I'm getting a weird thing happening...

These graphic shapes flicker (even if unchanged). UNLESS- I created a timer
and had the timer update a Label on the form with timer interval set to 10.
Now all the shapes I draw in the Paint event of the form draw WITHOUT
flicker!!!

What is updating a Label doing that is preventing flicker? Is it somehow
calling Paint more often? Why are the graphic shapes NOT being drawn at
times (which I assume is the cause of the flicker, 'frames' (or periods of
time) where the graphics aren't being displayed)?

This is weird because I'm not use to having to draw MORE objects to
elliminate flicker...hehe! Like I said, it's likely because Control's (such
as Label) somehow know what to do with the concepts of invalidated regions,
refresh, and update such that the Form always displays its Graphic objects
without flicker!!!

What can >I< do to accomplish the same thing without having to update a
Control? My solution right now is to create a bogus Label, place it off
screen (which by the way still elliminates the flicker even though its not
drawn!), add a Timer, make Timer update the color of the Label with timer
interval of 10. That is, whatever Label is doing, force it to do it on a
bogus object. But I'd rather do whatever its doing 'purely' to accomplish
this without creating the bogus Label!

Help, and thanks! : )

[==P==]
Nov 17 '05 #1
5 1373
Ok, more data for the problem.

It seems like some sort of timimg issue. Sometimes when I bring another form
up in front of my flickering form and then bring my form back, it stops
flickering (with the occasional shimmy). If I stop the program in the
debugger and thn start it up agian, it usually stops flickering. Obviously
because of this last tidbit I can't use the debugger to solve this... : (

I'm now doing the following, which still doesn't help, in fact it seems to
hurt. I now figure out the bounding box for my graphic and do an
'Invalidate" on this rectangle when I change the graphic. Still doesn't
work.

There must be someone out there that knows why Control's NEVER EVER flicker
but Graphics can!!! HELP!!!!

[==P==]

"Peter Oliphant" <po*******@RoundTripInc.com> wrote in message
news:uf**************@TK2MSFTNGP15.phx.gbl...
I'm drawing graphics using the Graphics object one can grab in a Form's
Paint event. But I'm getting a weird thing happening...

These graphic shapes flicker (even if unchanged). UNLESS- I created a
timer and had the timer update a Label on the form with timer interval set
to 10. Now all the shapes I draw in the Paint event of the form draw
WITHOUT flicker!!!

What is updating a Label doing that is preventing flicker? Is it somehow
calling Paint more often? Why are the graphic shapes NOT being drawn at
times (which I assume is the cause of the flicker, 'frames' (or periods of
time) where the graphics aren't being displayed)?

This is weird because I'm not use to having to draw MORE objects to
elliminate flicker...hehe! Like I said, it's likely because Control's
(such as Label) somehow know what to do with the concepts of invalidated
regions, refresh, and update such that the Form always displays its
Graphic objects without flicker!!!

What can >I< do to accomplish the same thing without having to update a
Control? My solution right now is to create a bogus Label, place it off
screen (which by the way still elliminates the flicker even though its not
drawn!), add a Timer, make Timer update the color of the Label with timer
interval of 10. That is, whatever Label is doing, force it to do it on a
bogus object. But I'd rather do whatever its doing 'purely' to accomplish
this without creating the bogus Label!

Help, and thanks! : )

[==P==]

Nov 17 '05 #2
Let me put this another way. How does one keep the Graphics that MUST be
drawn in the Paint event of the Form from flickering? Like I said, Control's
don't flicker, so why don't these flicker when Graphics shapes (e.g.,
ellipses, curves, circles, rectangles, closed curves, etc.) can? I actually
see these graphics flicker RIGHT NEXT to Controls that don't.

What is the SECRET here? : )

[==P==]

"Peter Oliphant" <po*******@RoundTripInc.com> wrote in message
news:e5**************@TK2MSFTNGP09.phx.gbl...
Ok, more data for the problem.

It seems like some sort of timimg issue. Sometimes when I bring another
form up in front of my flickering form and then bring my form back, it
stops flickering (with the occasional shimmy). If I stop the program in
the debugger and thn start it up agian, it usually stops flickering.
Obviously because of this last tidbit I can't use the debugger to solve
this... : (

I'm now doing the following, which still doesn't help, in fact it seems to
hurt. I now figure out the bounding box for my graphic and do an
'Invalidate" on this rectangle when I change the graphic. Still doesn't
work.

There must be someone out there that knows why Control's NEVER EVER
flicker but Graphics can!!! HELP!!!!

[==P==]

"Peter Oliphant" <po*******@RoundTripInc.com> wrote in message
news:uf**************@TK2MSFTNGP15.phx.gbl...
I'm drawing graphics using the Graphics object one can grab in a Form's
Paint event. But I'm getting a weird thing happening...

These graphic shapes flicker (even if unchanged). UNLESS- I created a
timer and had the timer update a Label on the form with timer interval
set to 10. Now all the shapes I draw in the Paint event of the form draw
WITHOUT flicker!!!

What is updating a Label doing that is preventing flicker? Is it somehow
calling Paint more often? Why are the graphic shapes NOT being drawn at
times (which I assume is the cause of the flicker, 'frames' (or periods
of time) where the graphics aren't being displayed)?

This is weird because I'm not use to having to draw MORE objects to
elliminate flicker...hehe! Like I said, it's likely because Control's
(such as Label) somehow know what to do with the concepts of invalidated
regions, refresh, and update such that the Form always displays its
Graphic objects without flicker!!!

What can >I< do to accomplish the same thing without having to update a
Control? My solution right now is to create a bogus Label, place it off
screen (which by the way still elliminates the flicker even though its
not drawn!), add a Timer, make Timer update the color of the Label with
timer interval of 10. That is, whatever Label is doing, force it to do it
on a bogus object. But I'd rather do whatever its doing 'purely' to
accomplish this without creating the bogus Label!

Help, and thanks! : )

[==P==]


Nov 17 '05 #3
> Let me put this another way. How does one keep the Graphics that MUST be
drawn in the Paint event of the Form from flickering? Like I said, Control's don't flicker, so why don't these flicker when Graphics shapes (e.g.,
ellipses, curves, circles, rectangles, closed curves, etc.) can? I actually see these graphics flicker RIGHT NEXT to Controls that don't.

What is the SECRET here? : )

The flikker is because you background is painted first to clear the
background and then your graphics shapes.
Flikker could be avoided by using a memory device context. where you draw
the complete image in a memory buffer and then swap it to the dialogbox
window, without painting the background first.

Nov 17 '05 #4
> The flikker is because you background is painted first to clear the
background and then your graphics shapes.
Flikker could be avoided by using a memory device context. where you draw
the complete image in a memory buffer and then swap it to the dialogbox
window, without painting the background first.


Sounds like page flipping. I like page flipping!

Ok. I currently draw to a Form (actually, my own class derived from a Form,
but therefore it is a Form) via a Graphics object I get from the Form's
Paint event. How do I easily draw to an off-screen 'memory device context'
instead of the Form, and how do I then do the swap you mentioned?

It sounds like a great idea, but I need details! : )

[==P==]

"Olaf Baeyens" <ol**********@skyscan.be> wrote in message
news:43**********************@news.skynet.be...
Let me put this another way. How does one keep the Graphics that MUST be
drawn in the Paint event of the Form from flickering? Like I said,

Control's
don't flicker, so why don't these flicker when Graphics shapes (e.g.,
ellipses, curves, circles, rectangles, closed curves, etc.) can? I

actually
see these graphics flicker RIGHT NEXT to Controls that don't.

What is the SECRET here? : )

The flikker is because you background is painted first to clear the
background and then your graphics shapes.
Flikker could be avoided by using a memory device context. where you draw
the complete image in a memory buffer and then swap it to the dialogbox
window, without painting the background first.

Nov 17 '05 #5
> Sounds like page flipping. I like page flipping!
You could call it that.
.... It sounds like a great idea, but I need details! : )


I know how to do it in MFC but never done it in .NET
But I think this could explain you it.

http://www.codeproject.com/cs/media/...reeDrawing.asp

The flicker is because you are drawnig on the form and since it is live
drawing you see the build up.
On a very fast computer you might not notice it but on a slow computer it
could be annoying.

I believe that clearing the packground with a specific color, gives the most
flicker.

You could improve by only drawing the parts that changes, that could reduce
flicker, bit when you have to build up the complete image, then it is back.
So the double buffer technique is the best way to solve this problem I
discovered.
Nov 17 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Minti | last post by:
Hi there all, I am having a weird problem in the following Applet code, <begin code> public class MouseInputTester extends java.applet.Applet { private String msg = ""; private int mouseX ;...
13
by: Wolfgang Kaml | last post by:
Hello All, I have been researching newsgroups and knowledgebase all morning and not found a solution that would solve the problem I have. I am having an ASP or ASPX web page that implement a...
1
by: Amy | last post by:
What's different between Controls method Refresh() and Invalidate(), Refresh() and Update()? Your help will be appreciated. Thanks.
1
by: James | last post by:
I have a data grid refresh problem. I have a few columns and the first column is data in the form of numbers. And in the form of the data grid if I specify for example something like a code(in a...
3
by: redneon | last post by:
Is an event fired whenever there's a screen refresh? I'm wanting to run a certain method whenever there's a screen refresh and was wondering if I could override wndproc and listen for an event to...
2
by: Peter Oliphant | last post by:
I now have graphics being drawn in the Paint event of my form (yeah, and it's very cool). Problem was that it only updated any changes to these graphics when Paint was called. So, I then made it...
17
by: SamSpade | last post by:
picDocument is a picturebox When I do picDocument.Invalidate() the box paints. But if instead I do picDocument.Refresh() the box does not paint. What does Refresh do. I guessed it did an...
4
by: CJ Taylor | last post by:
Alright, I wrote this program that is used throughout my entire company for the past 9 months. Now, we have deployed it to well over 100 machines. So my Sys Admin comes up to me today and...
1
by: Executor | last post by:
Hi you all, I have created a usercontrol with a filledEllipses on a filledRectangle, using this Paint event: private void myControl_Paint(object sender, System.Windows.Forms.PaintEventArgs e)...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.