Copyright: Copyright ® 1994 by Digital PowerTOOLS


contents
3DfxPlus.DLL Help

Copyright © 1994 by Digital PowerTOOLS

Another Shareware Product from Digital PowerTOOLS

Overview of 3DfxPlus.DLL

Primary Functions:

Window3Dfx

Get3DfxPlusVersion

JustifyLine

ScreenCenterWindow

SuperTextOut

Box Drawing Functions

Customizing Functions:

Assorted Customization

CheckBox Customization

Frame Customization

OptionButton Customization

VB Controls Border Style Customization

Windows Controls Border Style Customization

Copyright Notice

Order Form and Software Evaluation Form

Shareware Concept

Shareware License

Shareware Registration

Custom DLL's

Registered License


Overview
Overview of 3DfxPlus.DLL

MicroSoft's VisualBasic is a powerful programming language for the Windows operating system.  One of its most appealing features is it extensibility. You can add subroutines and functions directly within the language.  You can use most of the 800+ Windows API functions.  And, you can use virtually any Dynamic Link Library (DLL) or VBX (a specialized type of DLL).  The author, with 12 years of programming experience, prefers VB to Assembly, C, and C++.

Okay ... so what is 3DfxPlus.DLL?  A programmer might refer to the add-on as a Graphical 3D SubClassing Interpreter in Dynamic Library Format.  But, what you'll call this utility is a Powerful Enhancement to your Visual Basic (or C) application projects!

The use of 3D user-interface effects is rapidly becoming a standard in the computing world.  In fact, Windows 4.0 (the Chicago Project) includes a huge number these 3D effects.  3DfxPlus automatically adds this eye-appealling effect to your applications.

For example, your normal VB forms are transformed into 3D complete with gray (button color) backdrops, border shading, controls shading, recessed 3D check boxes, recessed 3D option buttons, etc.  And, common dialog boxes (open, save as, etc.) and MessageBoxes are automatically transformed into 3D too.  Plus, since 3DfxPlus works on a form by form basis, it won't interfere with your MDI (multiple document interface) projects (if you don't want it to).  What's more, 3DfxPlus even has an option to turn itself off if the user of your application has Win 4.0 so that you get the best of both worlds.

And, you can customize virtually every aspect of the 3D effects.  You can make borders sunken or raised.  You can have Option Buttons transformed into Sunken Circles or Sunken Diamonds.  You can have Check Boxes transformed into SunkenX's, RaisedX's, SunkenChecks, or RaisedChecks.  You can make Frame (GroupBox) borders raised, sunken, RaisedDouble, or SunkenDouble.  And, you can even choose from several different patterns for form backdrops.  You get nearly 3 dozen customizing functions, each with several options.  You can even change customizations on the fly from one form to another.  And, these functions use English words such as, left, right, center, sunken, raised, etc. -- so that you don't have to declare a lot of global constants; just plug 'n play.

And, what 3D package would be complete without some 3D effects for text output on forms.  3DfxPlus includes the SuperTextOut function which not only displays 3D text, but can also rotate text on Forms or PictureBoxes.  You also get a JustifyLine command which justifies text evenly between two margins.

The demo program (written in VB 3.0 standard) demonstrates nearly all of the new features of 3DfxPlus and reveals a few VB programming tricks too.  And, since 3DfxPlus.DLL comes with a complete Help file and a practical demonstration project in VB, you'll quickly understand how to use the new functions so that you can incorporate these eye-appealling techniques into your own projects.  Why turn your design desktop into a mosaic of toolbox buttons when a single DLL will transform your existing controls into 3D for you?


Shareware Concept

Commercial software is copyrighted (protected by law) and is typically sold through computer and department stores and through discount mail order houses.  The quality of most commercial software is usually very good to excellent.  Public domain software is not copyrighted and is typically found on computer bulletin boards.  The quality of public domain software ranges from poor to very good.  Shareware has similarities with both commercial and public domain software.  The quality is usually good to excellent (frequently surpassing commercial software in price versus features); and shareware can be obtained from computer bulletin boards, on disks in the back of some computer books, computer stores, on racks in some book stores, and from mail order houses.

Shareware is COPYRIGHTED (protected by law).  However, the author typically authorizes distribution of the software to others in the hopes that the users will like the program enough to send in a registration fee which removes a 'Need To Register' message (when the registration number is sent by return mail or an upgrade is provided) and offers notification of program updates and other benefits.  And ... sending the registration fee encourages the author to write MORE software.

Many shareware authors are professional programmers who write these programs in their spare time.  The fundamental concept of shareware is TRY, BEFORE YOU BUY.  And, not only do you get to try the program before you buy; but, you also will typically get professional quality software at well below the market price of comparable commercial packages when you do register.

The FUTURE of shareware depends on YOU.  If you continue using a shareware package, you should register it.

You have 30 days to evaluate 3DfxPlus.DLL once you install it on your system.  After that, you should either register it or remove it from your system.


Custom DLL's

Digital PowerTOOLS is dedicated to helping VB and C programmers.  Moreover, we will consider custom DLL and/or VBX projects which have potential mass market appeal.  And, of course, we certainly consider enhancements to our released products.  Write to:

Digital PowerTOOLS
P.O. Box 97794
Jackson, MS  39288-7794


Copyright Notice

3DfxPlus.DLL, Copyright © 1994 by Digital PowerTOOLS

3DfxPlus.DLL is distributed under the shareware concept.  Shareware Registration is mandatory for continued use of this product.

And, as shareware, you may evaluate 3DfxPlus.DLL for a period of no more than 30 days.  After this time you must either register it or remove it from your system. Failure to comply with this condition is a violation of United States and international copyright law.

This program is fully functional, however you will receive the latest version upon registering (with the startup registration reminder removed).  Please register if you use this program for more than the 30-day trial period.  See Shareware Registration for more specific details on registering this product.


Shareware License

Shareware Distribution

You have the right to freely distribute the unregistered version of this software which includes uploading to BBS's provided that:  (1) no files in the original package are altered in any way and that the the software is not sold for profit -- cost of duplication and shipping may, of course, be requested in distribution to end users, (2) all the files must be distributed together, and (3) individual copies of this software may not be sold for more than $10.00.

You must stop selling/distributing copies of this version of this software upon written notice from the author or Digital PowerTOOLS.  The terms of this distribution license are subject to change with the release of new versions of this software.  This software may not be represented as anything other than shareware and the shareware concept must be explained in any advertisement or catalog that quotes a price and on any packaging used to display the disk.  The explanation of the shareware concept must make it clear that with shareware an additional registration fee is required if users continue to utilize the software.

Shareware Registration

You have the right to use this unregistered software for a period not to exceed 30 days from installation.  After this trial period, you should either register it or remove it from your system.  Failure to comply with this software license is a violation of U.S. Copyright laws.  See Software Registration for more details.

Site Licenses

Write to receive the latest details on site licenses.

Rack Sales & CD Distribution

Write to request the latest details on rack sales and other For-Profit distribution.  You may not include this shareware on a CD-ROM or other type of package produced by any user group, commercial library, or any for-profit or nonprofit organization; and you may not distribute same with any other product or as an incentive to purchase any other product without the express written permission of Digital PowerTOOLS.  This software may not be sold on retail racks or CD-ROM disks, by either ASP or non-ASP vendors, without specific written permission from the Digital PowerTOOLS.


Shareware Registration

This program is Shareware.  You may evaluate if for a period of no more than 30 days.  After this time you should either register it or remove it from your system. Failure to comply with this condition is a violation of United States and international copyright law.  If you do find that this program is applicable to your computer usage, please send in your registration fee.

Take it for a spin around the block.  Kick the tires.  Look under the hood.  If you like it and use it, register the application.  If it doesn't suit your needs, take it off your system.  If you do enjoy the features that 3DfxPlus.DLL gives you, try other products from Digital PowerTOOLS too.

(notice the subliminal messages)  This program is provided as Shareware and may be freely distributed (according to the terms under the Shareware License).  If you find the program useful (register today), we ask that you send in the nominal registration fee of $10.00 to the address below.  Many hours of work went into this project.  And, this registration fee includes FREE shipping of the latest version on disk.

Registering this product will also encourage us to write more software under the Shareware concept (register today) for the PC.  If you like it, register it (register today).  If you don't, don't -- and remove it from your system.  Either way, though, we'd like hear your suggestions for improvement (register today) -- send in the Software Evaluation form (EvalFrm.Wri).  And ... registered users will have any questions answered (register today).  The future of Shareware depends on YOU ... register today.

Be sure to include the PROGRAM TITLE and VERSION NUMBER that you have.  Also specify the disk format that you prefer (3.5-HD or 5.25-HD) of the latest version.  Be sure to include your name, company, and mailing address.  You may also use our order form (OrderFrm.Wri).

Thank you (yadot retsiger).  You may also contact the author with private mail through America Online, ID# Vernon486.  Mail check, money order, cash and/or suggestions to (Make checks payable to Digital PowerTOOLS):

Digital PowerTOOLS   P.O. Box 97794   Jackson, MS  39288-7794


Order Form

Order Form

This product includes a file in Windows Write format entitled OrderFrm.Wri which you can use to print an order form for registering 3DfxPlus.DLL.

Sofware Evaluation Form

This package includes a file in Windows Write format entitled EvalFrm.Wri which you can use to print a software evaluation form.

Address

Send to:

Digital PowerTOOLS
P.O. Box 97794
Jackson, MS  39288-7794


Registered License

Upon registration of this product, you may include 3DfxPlus.DLL in your own application projects to end users.  You may not offer 3DfxPlus.DLL as an independent application or utility; and, you may not offer 3DfxPlus.DLL in a manner that would directly compete with the product.

3DfxPlus.DLL is provided as a utility to enhance the functionality of your own applications .  As such, you are not permitted to reveal how to use the functions of 3DfxPlus.DLL to your end users without the express written permission of Digital PowerTOOLS.

It is our sincere hope that as a registered user of this product you find 3DfxPlus.DLL to be a welcome addition to your library of VB (or C) utilities.  If you have questions about usage or suggestions for improvement, please write to let us know.  We appreciate your business!


Function:  Get3DfxPlusVersion
Get3DfxPlusVersion

Declare Function Get3Dfx PlusVersion% Lib "3DfxPlus.DLL" ()

* This function returns the version of 3DfxPlus.
* The returned value is 100 times the actual version number.
* For instance, a returned value of 150 represents version 1.50.


Function:  Window3Dfx
Window3Dfx

Declare Sub Window3Dfx Lib "3DfxPlus.DLL" (ByVal hWnd%)

* this is the function that enables the automatic 3D effects for a window.
* include this command in the Load Event of a form (WM_CREATE message in C)

* hWnd% will invariably be:  me.hWnd

* include this command in EACH form on which you want to enable the 3D effects
* implement any configuration settings prior to using this function
* if you use multiple configurations, restore the previous configuration settings in the
  Unload Event of the latest form (WM_DESTROY message in C)
* when this function is activated, any Windows Dialog Boxes (open, save as, etc.) and
  Message Boxes opened from this window will automatically have the 3D effects too
* the forms DemoMain.Frm and AltWdw.Frm demonstate how to use this function

* It is recommended that you change the filename of 3DfxPlus.DLL in order to prevent the
  possibility of conflicts with other applications using the same DLL that customize the
  various features.  This is because a DLL only has one set of data.  For example, change
  the name from 3DfxPlus.DLL to MyApp.DLL.  If you do this, be certain to change the
  Declare statements in you BAS (or GBL) file to reflect the new DLL name.  If you don't
  make any customization changes, you need not make this change.
* The DemoMain.Frm Load Event includes several customization setting in REMark
  statements in order to faciliate experimentation.  Just remove the apostrophes and run
  the project again to see the changes.


Function:  JustifyLine
JustifyLine

Declare Sub JustifyLine Lib "3DfxPlus.DLL" (ByVal hDC%, ByVal StartXpixel%, ByVal StartYpixel%, ByVal TheWidthPixels%, ByVal lpString$)

* Use this function to justify a line of text evenly between two margins.
* You should use the command in the Paint Event

* hDC% will invariably be:  me.hDC
* StartXpixel% is the horizontal starting point in pixels
* StartYpixel% is the vertical starting point in pixels
* TheWidthPixels% is the number of pixel wide in which to do the formating
* lpString$ is the string to output

* the TextJust.Frm demonstrates the use of this command


Function:  ScreenCenterWindow
ScreenCenterWindow

Declare Sub ScreenCenterWindow Lib "3DfxPlus.DLL" (ByVal hWnd%)

* this function centers a window on the screen
* include this command in the Load Event of the form

* hWnd% will invariably be:  me.hWnd


Function:  SuperTextOut
SuperTextOut

Declare Sub SuperTextOut Lib "3DfxPlus.DLL" (ByVal hDC%, ByVal XstartPixel%, ByVal YstartPixel%, ByVal TheString$, ByVal FontName$, ByVal TheStyle$, ByVal The3DStyle$, ByVal AlignmentType$, ByVal PointSize%, ByVal TheColor&, ByVal RotationAngle%)

* this command outputs text to a Form or PictureBox with 3D shading and Rotation
  options
* use this command in the Paint Event of your forms

* hDC% will invariably be:  me.hDC
* XstartPixel% is the horizontal starting point in pixels
* YstartPixel% is the vertical starting point in pixels
* TheString$ is the string to be output
* FontName$ is the facename to use ("Arial", "Times New Roman", etc.)
* TheStyle$ is one of the following:  "bold", "italic", "BoldItalic", or "plain"
* The3DStyle$ is one of the following:  "raised", "sunken", or "plain"
* AlignmentType$ is one of the following:  "left", "center", or "right"
* PointSize% is the output point size to use (8, 10, 12, etc.)
* TheColor& is the output color to use: for example, RGB(0,0,255) or QBCOLOR (1)
* RotationAngle is the angle of rotation to use: any value from 0 thru 359

* the TextOut.Frm demonstates how to use this command


Functions:  Box Drawing
Box Drawing Functions

Declare Sub Draw3Dbox Lib "3DfxPlus.DLL" (ByVal hWnd%, ByVal LeftStartPixel%, ByVal TopStartPixel%, ByVal WidthPixels%, ByVal HeightPixels%, ByVal Style$)

* this command draws a 3D box on a Form or PictureBox
* use this command in the Paint Event of the Form or PictureBox

* hWnd% will invariably be:  me.hWnd
* LeftStartPixel% is the horizontal starting point in pixels
* RightStartPixel% is the vertical starting point in pixels
* WidthPixels% is the width of the box in pixels
* HeightPixels% is the height of the box in pixels

Declare Sub Draw3DWindowBox Lib "3DfxPlus.DLL" (ByVal hWnd%, ByVal PixelAmountInside%, ByVal Style$)

* this command draws a 3D border on a Form
* use this command in the Paint Event of the Form

* hWnd% will invariably be:  me.hWnd
* PixelAmountInside% is the number of pixels IN from the border to draw the box
* Style$ is the style in which to draw the box:  "raised", "sunken", "RaisedDouble",
  "SunkenDouble" or "plain"

* 3DfxPlus.BAS includes some alternate Form Border options in the function:
  DoForm3D


Functions:  Assorted Customization
Assorted Customizations

Declare Sub AbortIfWin4Used Lib "3DfxPlus.DLL" (ByVal TrueFalse%)

* use this command to abort Window3Dfx effects if Windows 4.0 or higher is installed
* use this command BEFORE Window3Dfx

* TrueFalse% is the detection status:
TRUE will abort if Win 4.0 is installed
FALSE will NOT abort if Win 4.0 is installed

* this feature is included so that users who do not have Win 4.0 can still have 3D effects
  similar to those in 4.0.  Of course, you should still be able to use Window3Dfx even if the
  system has 4.0 installed.
* the DEFAULT setting is FALSE

Declare Sub SetBackDropStyle Lib "3DfxPlus.DLL" (ByVal TheStyle$)

* use this command to create is backdrop pattern for Forms, Dialog Boxes, and Message
  Boxes
* use this command BEFORE Window3Dfx

* TheStyle$ is the pattern to use:
"none" (transparent), "solid", "SlickFillLight", "SlickFillDark", "DiamondsLight"
"DiamondsDark", "HorzLinesLight", or "HorzLinesDark"
* the DEFAULT setting is "solid"


Functions:  CheckBox Customization
CheckBox Customization

Declare Sub SetCheckBoxCaptionStyle Lib "3DfxPlus.DLL" (ByVal lpString$)

* this command sets the 3D style for CheckBox captions
* use this command before Window3Dfx

* lpString$ is the style:  "raised", "sunken", or "plain"

* the DEFAULT setting is "plain"

Declare Sub SetCheckBoxFontSpecs Lib "3DfxPlus.DLL" (ByVal FaceName$, ByVal FontStyle$, ByVal PointSize%, ByVal FontColor&)

* this command defines the typeface parameters for CheckBox captions
* use this command before Window3Dfx

* FaceName$: "Arial", "Times New Roman", etc.
* PointSize%: 8, 10, 12, etc.
* FontColor&: RGB(0,0,255), QBCOLOR(1), etc.

* the DEFAULT settings are:
FaceName$="MS Sans Serif"
PointSize%=10
FontColor&=QBCOLOR(0), actually the Windows ButtonFace Color

Declare Sub SetCheckBoxGraphicAlignment Lib "3DfxPlus.DLL" (ByVal lpString$)

* this command determines the alignment of the graphic position for CheckBoxes
* use this command before Window3Dfx

* lpString$: "left" or "right"

* the DEFAULT setting is "right"

Declare Sub SetCheckBoxStyle Lib "3DfxPlus.DLL" (ByVal lpString$)

* this command determines the type of graphic used with CheckBoxes
* use this command before Window3Dfx

*lpString$: "SunkenX", "RaisedX", "SunkenCheck", or "RaisedCheck"

* the DEFAULT setting is "SunkenX"

Declare Sub SetCheckBoxTextAlignment Lib "3DfxPlus.DLL" (ByVal lpString$)

* this command determines the alignment of the text position for CheckBoxes
* use this command before Window3Dfx

* lpString$: "left" or "right"

* the DEFAULT setting is "left"


Functions:  Option Button Customization
Option Button Customization

Declare Sub SetOptBtnCaptionStyle Lib "3DfxPlus.DLL" (ByVal lpString$)

* this command sets the 3D style for Option Button captions
* use this command before Window3Dfx

* lpString$ is the style:  "raised", "sunken", or "plain"

* the DEFAULT setting is "plain"

Declare Sub SetOptBtnFontSpecs Lib "3DfxPlus.DLL" (ByVal FaceName$, ByVal FontStyle$, ByVal PointSize%, ByVal FontColor&)

* this command defines the typeface parameters for Option Button captions
* use this command before Window3Dfx

* FaceName$: "Arial", "Times New Roman", etc.
* PointSize%: 8, 10, 12, etc.
* FontColor&: RGB(0,0,255), QBCOLOR(1), etc.

* the DEFAULT settings are:
FaceName$="MS Sans Serif"
PointSize%=10
FontColor&=QBCOLOR(0), actually the Windows ButtonFace Color

Declare Sub SetOptBtnGraphicAlignment Lib "3DfxPlus.DLL" (ByVal lpString$)

* this command determines the alignment of the graphic position for Option Buttons
* use this command before Window3Dfx

* lpString$: "left" or "right"

* the DEFAULT setting is "right"

Declare Sub SetOptBtnStyle Lib "3DfxPlus.DLL" (ByVal lpString$)

* this command determines the type of graphic used with Option Buttons
* use this command before Window3Dfx

*lpString$: "SunkenCircle" or "SunkenDiamond"

* the DEFAULT setting is "SunkenDiamond" (this is what Win 4.0 uses)

Declare Sub SetOptBtnTextAlignment Lib "3DfxPlus.DLL" (ByVal lpString$)

* this command determines the alignment of the text position for Option Buttons
* use this command before Window3Dfx

* lpString$: "left" or "right"

* the DEFAULT setting is "left"


Frame Customization

Declare Sub SetFrameBorderStyle Lib "3DfxPlus.DLL" (ByVal lpString$)

* this command determines the border style used for frames (GroupBoxes)
* use this command BEFORE Window3Dfx

* lpString$: "raised", "sunken", "RaisedDouble", "SunkenDouble", "plain", or "none"

* the DEFAULT setting is "RaisedDouble"

Declare Sub SetFrameCaptionAlignment Lib "3DfxPlus.DLL" (ByVal lpString$)

* this command determines the alignment of the caption for Frames
* use this command before Window3Dfx

* lpString$: "left", "center", or "right"

* the DEFAULT setting is "center"

Declare Sub SetFrameCaptionStyle Lib "3DfxPlus.DLL" (ByVal lpString$)

* this command sets the 3D style for Frame captions
* use this command before Window3Dfx

* lpString$ is the style:  "raised", "sunken", or "plain"

* the DEFAULT setting is "plain"

Declare Sub SetFrameFontSpecs Lib "3DfxPlus.DLL" (ByVal FaceName$, ByVal FontStyle$, ByVal PointSize%, ByVal FontColor&)

* this command defines the typeface parameters for Frame captions
* use this command before Window3Dfx

* FaceName$: "Arial", "Times New Roman", etc.
* PointSize%: 8, 10, 12, etc.
* FontColor&: RGB(0,0,255), QBCOLOR(1), etc.

* the DEFAULT settings are:
FaceName$="MS Sans Serif"
PointSize%=12
FontColor&=QBCOLOR(0), actually the Windows ButtonFace Color


Functions:  VB Controls Border Style
Customizaion for
VB Controls Border Style

* each of these commands determines the border style for VB controls
* use these commands BEFORE Window3Dfx

* lpString$: "sunken", "raised", or "none"

* the DEFAULT settings are "sunken"; the only exceptions are SetFrameBorder,
  SetCheckBoxBorder, and SetOptBtnBorder which are each "none" by default.

Declare Sub SetCheckBoxBorder Lib "3DfxPlus.DLL" (ByVal lpString$)

Declare Sub SetDirBoxBorder Lib "3DfxPlus.DLL" (ByVal lpString$)

Declare Sub SetDriveBoxBorder Lib "3DfxPlus.DLL" (ByVal lpString$)

Declare Sub SetFileBoxBorder Lib "3DfxPlus.DLL" (ByVal lpString$)

Declare Sub SetFrameBorder Lib "3DfxPlus.DLL" (ByVal lpString$)

Declare Sub SetOptBtnBorder Lib "3DfxPlus.DLL" (ByVal lpString$)

Declare Sub SetPictureBoxBorder Lib "3DfxPlus.DLL" (ByVal lpString$)

Declare Sub SetVBComboBoxBorder Lib "3DfxPlus.DLL" (ByVal lpString$)

Declare Sub SetVBListBoxBorder Lib "3DfxPlus.DLL" (ByVal lpString$)

Declare Sub SetVBHScrollBarBorder Lib "3DfxPlus.DLL" (ByVal lpString$)

Declare Sub SetVBTextBoxBorder Lib "3DfxPlus.DLL" (ByVal lpString$)

Declare Sub SetVBVScrollBarBorder Lib "3DfxPlus.DLL" (ByVal lpString$)


Functions:  Windows Controls Border Style
Customization for
Windows Controls Border Style

* each of these commands determines the border style for Windows controls
* use these commands BEFORE Window3Dfx

* lpString$: "sunken", "raised", or "none"

* the DEFAULT settings are "sunken"; the only exception is SetStaticBorder which is
  "none" by default

Declare Sub SetComboBoxBorder Lib "3DfxPlus.DLL" (ByVal lpString$)

Declare Sub SetEditBoxBorder Lib "3DfxPlus.DLL" (ByVal lpString$)

Declare Sub SetListBoxBorder Lib "3DfxPlus.DLL" (ByVal lpString$)

Declare Sub SetScrollBarBorder Lib "3DfxPlus.DLL" (ByVal lpString$)

Declare Sub SetStaticBorder Lib "3DfxPlus.DLL" (ByVal lpString$)