PRB: Extra Repaint of VB CDK Graphical Custom Control

ID: Q108710

3.00 WINDOWS kbtool kbprg kbprb

The information in this article applies to:

  • Professional Edition of Microsoft Visual Basic for Windows, version 3.0

SYMPTOMS

You can use the Visual Basic Control Development Kit (CDK) to design a graphical custom control to perform visual effects. However, when another control such as a Visual Basic button becomes visible on the same form as your custom control, the graphical control repaints even though its client area has not been invalidated.

CAUSE

The repaint logic in Visual Basic causes this behavior. Graphical controls get a VBM_PAINT message every time their container gets a WM_PAINT message, regardless of whether the graphical control is in the invalidated area.

The VBM_PAINT message is the paint notification for graphical controls. The value of the VBM_PAINT constant is defined in the VBAPI.H file in Visual Basic's CDK directory. WM_PAINT is a message for windowed controls. For examples of VBM_PAINT and WM_PAINT, see the PIX.C file in Visual Basic's CDK directory.

WORKAROUND

You can work around this behavior in the VBM_PAINT handler with the following C code:

   if (!RectVisible((HDC)wParam,(LPRECT)lParam)) {
      // Control is not in the paint region
      // Don't bother to repaint
      break;
      }

Additional reference words: 3.00 flash flicker KBCategory: kbtool kbprg kbprb KBSubcategory: TlsCDK
Keywords          : TlsCDK 
Version           : 3.00
Platform          : WINDOWS


Last Reviewed: February 19, 1996
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.