Microsoft KB Archive/113898

= How To Use CTL3D.DLL in Your Visual Basic Program =

Article ID: 113898

Article Last Modified on 8/5/2004

-

APPLIES TO


 * Microsoft Visual Basic 2.0 Standard Edition
 * Microsoft Visual Basic 3.0 Professional Edition
 * Microsoft Visual Basic 2.0 Professional Edition
 * Microsoft Visual Basic 3.0 Professional Edition

-



This article was previously published under Q113898



SUMMARY
You can use CTL3D.DLL to add three-dimensional (3-D) effects to the common dialog boxes and message boxes for a Visual Basic application. However, CTL3D.DLL does not work currently for the controls on a Visual Basic form or for the form itself.

To get 3-D effects for the controls on a form, use the controls found in the THREED.VBX custom control.



MORE INFORMATION
To use CTL3D.DLL to enhance the common dialog boxes and message boxes from Visual Basic, follow these steps:  Start a new project in Visual Basic. Form1 is created by default.  Add the following code to the form's general declarations section: Option Explicit Const GWW_HINSTANCE = (-6)

' Enter each declaration as one, single line:

Declare Function GetWindowWord Lib "User" (ByVal hWnd As Integer, ByVal     nIndex As Integer) As Integer Declare Function Ctl3dAutoSubclass Lib "Ctl3D.DLL" (ByVal hInst As     Integer) As Integer Declare Function Ctl3dRegister Lib "Ctl3D.DLL" (ByVal hInst As Integer) As Integer Declare Function Ctl3dUnregister Lib "Ctl3D.DLL" (ByVal hInst As     Integer) As Integer

  Add the following code to the form's load event procedure: Sub Form_Load Dim hInst As Integer, ret As Integer

hInst = GetWindowWord(Me.hWnd, GWW_HINSTANCE) ' Get Instance Handle ret = Ctl3dRegister(hInst)           ' Register program w/ Ctl3d. ret = Ctl3dAutoSubclass(hInst)       ' Subclass the program. End Sub

  Add the following code to the form's unload event procedure: Sub Form_Unload (Cancel As Integer) Dim hInst As Integer, ret As Integer

hInst = GetWindowWord(Me.hWnd, GWW_HINSTANCE) ' Get Instance Handle ret = Ctl3dUnregister(hInst)         ' Unregister the program. End Sub

 Add a command button (Command1) to the form.  In the Click event for Command1, add a MsgBox statement: Sub Command2_Click MsgBox "This is a 3-D Message Box" End Sub

 Press the F5 key to run the program. When you click the command button, a message box will appear in 3-D.</li></ol>

Important Note
If your program fails to unregister itself from CTL3D.DLL when your program ends, you may cause Windows to crash (stop operating). For example, if you place the Ctl3dUnregister function in the Unload event and your program uses the End statement, Windows may crash because the End statement does not invoke the QueryUnload or Unload event.

<div class="references_section">