Article: Q108710
Product(s): Microsoft Visual Basic for Windows
Version(s): WINDOWS:3.0
Operating System(s):
Keyword(s):
Last Modified: 26-APR-2000
3.00
WINDOWS
kbtool kbprg kbprb
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Visual Basic Professional Edition 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 query words: 3.00 flash flicker
======================================================================
Keywords :
Technology : kbVBSearch kbAudDeveloper kbZNotKeyword6 kbZNotKeyword2 kbVB300Search kbVB300
Version : WINDOWS:3.0
=============================================================================