P.Brian.Mackey
P.Brian.Mackey

Reputation: 44275

Screen flicker issue

I've got an issue where some computers (rarely) start to flicker when using our application. I found some odd code in the main form of our app:

    protected override CreateParams CreateParams
    {
        get
        {                
            var cp = base.CreateParams;
            cp.ExStyle |= 0x02000000;//composite window. Composite windows do not render/flickr when controls are born.  This speeds up loading.
            return cp;
        }
    }

The code appears to be sourced from an online source where they warn:

You should be aware of the fact, though, that this only works in environments where all control painting(within the hierarchy) is done within WM_PAINT. Applications using other/asynchronous means of rendering into a control within the hierarchy will likely have theirs problems with this solution causing unwanted behavior.

What exactly is WM_PAINT? Do they mean all controls need to be painted via win32 API calls or is this what happens normally in a Load event?

There's a note saying the code was added to reduce a bug report regarding flicker...I just wonder if they threw the baby out with the bathwater on this one.

Upvotes: 3

Views: 441

Answers (1)

vbtheory
vbtheory

Reputation: 373

Try using DoubleBuffered = true;

Upvotes: 1

Related Questions