Unfilled Area of VB 3-D Panel Custom Control Not Refreshed

ID Number: Q83757

1.00

WINDOWS

buglist1.00

Summary:

If you use the 3-D Panel custom control as a gauge, the area above the

FloodPercent value is not refreshed automatically. This can become a

problem if you overlap the panel with another window, or minimize and

then restore the form with the 3-D Panel. Portions of the screen that

were behind the 3-D Panel may still be displayed on the 3-D Panel.

To work around this problem, call the Refresh method after

changing the value of FloodPercent.

Microsoft has confirmed this to be a problem with the 3-D Panel custom

control supplied with Microsoft Professional Toolkit for Microsoft

Visual Basic programming system version 1.0 for Windows. We are

researching this problem and will post new information here as it

becomes available.

More Information:

Workaround

----------

To work around this problem, call the 3-D Panel Refresh method, as

shown below. On some systems, the Refresh method may produce

flickering. If this is the case, you may want to use the Gauge control

included with the Visual Basic Professional Toolkit instead of the 3-D

Panel.

Sub Command1_Click ()

Panel3D1.FloodType = 1 'fill left to right

For index% = 1 To 100

Panel3D1.FloodPercent = index%

'* place this time delay loop to slow the

'* flood fill down to see the effects

For i% = 1 To 10000: Next

'* DoEvents is necessary so that

'* FloodPercent will take effect

dummy% = DoEvents()

Panel3D1.Refresh

Next

End Sub

Steps to Reproduce Problem

--------------------------

1. Run Visual Basic, or from the File menu, choose New Project (ALT,

F, N) if Visual Basic is already running. Form1 is created by

default.

2. From the File menu, choose Add File. In the Files box, select the

THREED.VBX custom control file. The 3-D Panel tools appear in the

Toolbox.

3. Add a 3-D Panel custom control and a standard command button to the

form.

4. In the Command1_Click event procedure, add the following code:

Sub Command1_Click ()

Panel3D1.FloodType = 1 'Fill left to right

For index% = 1 To 100

Panel3D1.FloodPercent = index%

'* place this time delay loop to slow the

'* flood fill down to see the effects

For i% = 1 To 10000: Next

'* DoEvents is necessary so that

'* FloodPercent will take effect

dummy% = DoEvents()

Next

End Sub

5. Press F5 to start your program. Position another window, such as

the Program Manager, behind the area of the screen that the 3-D

Panel covers.

6. Click on the command button. Immediately after you click that

button, minimize the form and then immediately restore the form by

double-clicking on the form's icon. You should see portions of the

"other" window bleed through the 3-D Panel in the area that is

above the current value of FloodPercent. As FloodPercent is

incremented, this area will be covered.

Additional reference words: 1.00 3D