> Are you stating the help file here for LockWindowUpdate?. Because that is
> the way it reads, but in reality it does not work like that for me.

No, I'm paraphrasing (from memory, mind you :-) what I remember reading in
the Win32 API specs.

> It causes the whole screen to be redrawn...

Umm.. 'whole screen' in what context? The entire screen (all apps), the
entire client area (your app), or the entire status bar?

> When I use it I am passing it the handle of the window, and when I am
> finished I pass it 0.
>
> LockWindowUpdate(handle);
>
> do something
>
> lockWindowUpdate(0);

Hrmm.. We may be talking at cross purposes here. If you want to eliminate
ALL flicker, you have to override WM_ERASEBKGND and get clever, as I
mentioned.

>From memory, my understanding of the TStatusBar component is that it does
not create HWNDs for the status panel sections, which is understandable
enough. However, I suspect it's paint handling is not smart enough to
examine the passed in clipping region and only repaint the status sections
that change.

In factm, I suspect they take the easy way out and invalidate the whole
statusbar HWND when a single status section changes which is then all erased
and all sections repainted. So it's always going to flicker as implemented
whether you LockWindowUpdate or not since the flicker is indepedent of the
number of WM_PAINTs received which is the only thing LockWindowUpdate
optimises (to my knowledge).

TTFN,
  Paul.


---------------------------------------------------------------------------
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz

Reply via email to