Welcome to the 3-d world of Windows!
                                                                
To avoid reading this text file, just run the demo.exe program!.

Description:
------------
The file "three_d.dll" contains functions for making a Windows 3.0 dialog box
appear to have a 3-dimensional look.  You can use your own discretion as to
which controls look good with a 3-d appearance.  It requires that you make some
minor changes in your programs's source and build files.  In order for the
DLL to function properly, it must be either in the directory where you are
running your program from or included in a directory which is contained in your
path.  The source code for the demo.exe program is also included.

UPDATE:  - The DLL now supports EGA, VGA and above.  Sorry, no monochrome!
------   - New 3-D ownerdraw listbox and combobox support (You'll love it!)

      
/==============================================================================/

The following are the steps necessary to implement the functions contained in the
DLL:

-  Be sure to include the file "three_d.h" in any module which will call a
   function contained in the DLL.  This function contains prototypes for
   each function.

-  Modify your link line to contain the library "three_d.lib"

-  Modify your dialog box procedure to trap the following messages:
   WM_CTLCOLOR, WM_PAINT and the DLL defined message WM_3DPAINT.

-  Modify the dialog box template to exclude the WS_BORDER style from controls
   which will be 3-d.  Note:  For edit controls, this requires subtracting
   2 from cy.

-  NEW:  If you wish to do 3-d owner-draw listboxes or combo boxes, trap
         the WM_MEASUREITEM and WM_DRAWITEM messages.  It's simple!
             
/==============================================================================/

Function Descriptions:

-  Handle3dFocus(lpdis)

   lpdis       long pointer to a DRAWITEMSTRUCT structure which contains
               information for drawing the list/combo box item.

   This function takes care of a list or combo box item losing or gaining the
   input focus.

-  Draw3dItem(lpdis)

   lpdis       long pointer to a DRAWITEMSTRUCT structure which contains
               information for drawing the list/combo box item.

   This function handles the actual drawing of the listbox or combobox item.
   It handles both the selected and normal state of the item.

-  Draw3dFrame(hDlgBox,mode)

   hDlgBox     is a handle to the dialog box which you wish to make 3-d.

   mode        is an identifier for the type of frame to be drawn.
               INSIDE_FRAME draws a "picture" frame around the box
               OUTSIDE_FRAME draws a "creased" frame around the box.

   This function draws a 3_D frame around the client area of the
   specified dialog box.

-  Draw3dBorder(hDlgBox,ControlId,mode,depth)

   hDlgBox     is a handle to the dialog box which you wish to make 3-d.

   ControlId   is the integer identifier for the control you wish to draw.

   mode        specifies drawing mode:
               RECESSED makes the control appear "recessed"
               RAISED makes the control appear "raised"
               CREASED makes the control appear "creased".  Using this style,
                  a border can be drawn around a group of controls if you
                  specify a control in the dialog editor which has the
                  SS_BLACKFRAME,SS_WHITEFRAME or SS_GRAYFRAME style and
                  surrounds the desired group of controls.

   depth       is an integer value defining the width of the pen used for
               drawing.  This governs how "raised" or "recessed" the given
               control will appear.  This value must be 1 or greater.

   This function draws a three dimensional border around the specified
   control.

-  Draw3dShadow(hDlgBox,ControlId)

   hDlgBox     is a handle to the dialog box which you wish to make 3-d.

   ControlId   is the integer identifier for the control you wish to draw.

   This function draws a "dropped" shadow around the specified control.

-  Control3dColor(hDlgBox,wParam)

   hDlgBox     is a handle to the dialog box which you wish to make 3-d.

   wParam      is the wParam which accompanies the WM_CTLCOLOR message for the
               dialog box.

   This function handles the WM_CTLCOLOR message for the specified dialog box.
   It sets the background color for the dialog box to light gray.

/=============================================================================/

Included with this ZIP file, you will find the source code for the demo.exe
program.  Rather than put the sample code in this text file, I thought it would
be easier to include the source.

/=============================================================================/
                      
If you have any questions or comments I can be reached at the following address
on CompuServe:

   70324,1204

Your comments would be greatly appreciated!

This DLL comes to you without any annoying registration messages.  However,
if you decide to ship the DLL with your own application, I will rely on your
honesty to register the copy.  This will also insure future upgrades.

To register your royalty free version of three_d.dll,
Send $20 (for DLL) or $50 (for DLL and source) check or money order to:

   Ray Donahue
   365 Mather Street Unit 125
   Hamden, CT 06514

Your support would be greatly appreciated!

Also Available (for a nominal fee) to registered users:
   -  Source code and DLL for creating "Excel-like" toolbar.  This is currently
      under construction and will be available soon!

   -  Source code and DLL for creating "Excel and Word-like" status bar.
      This is implemented as a custom control and will be available by
      10/31/91.

To obtain demos for any of the above, leave a message at the CompuServe
address listed above.

Once again,
Thanks!
