PRB: Extra Repaint of VB CDK Graphical Custom Control (108710)
The information in this article applies to:
- Microsoft Visual Basic Professional Edition for Windows 3.0
This article was previously published under Q108710
3.00
WINDOWS
kbtool kbprg kbprb
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;
}
Modification Type: | Major | Last Reviewed: | 4/26/2000 |
---|
Keywords: | KB108710 |
---|
|