Graphical Menus - Programming Components


WHAT IS IT ?
HOW DOES IT WORK ?
WHAT DOES IT LOOK LIKE WHEN ALL IS SAID AND DONE ?
WHAT ARE THE PROS AND CONS OF USING GM ?
HOW ABOUT A TEST DRIVE ?
HOW CAN I GET GRAPHICAL MENUS ?
MORE INFORMATION OR QUESTIONS ?


WHAT IS IT ?

"Graphical Menus" components (or GM components for short) are Visual Basic components that when added to your VB project transform the standard menu systems of your forms into graphical menus containing pictures and visual effects similar to those found within the menu systems of Office 97 or Office 2000 applications.  These components also allow you to trap events passed to the menu system that you normally couldn't trap.  For example, the standard VB menu system only passes you the "Click" event where the GM components pass you such events as "MouseDown", "MouseOver", "MouseUp", and "PopUpActivate".  The GM components are made up of the following modules and class modules:

•  modBitmap.bas -   Standard module that handles some of the picture processing for the menus
•  modGraphicalMenus.bas -   Standard module that contains the required Win32 function declarations and constants along with some of the functions for handling the menu manipulation
•  cGraphicalMenus.cls -  Class module that acts as the user interface to the functionality provided by the the GM components containing the properties and methods that do the work.

All the extra functionality that you get from the GM components is added to your program without the cost of time spent altering to your existing program and how you work with the menu systems of your forms.  The GM components allow VB to work with form menus just as if they would without the GM components installed.  That means no time wasted re-arranging your menu code to be called from within odd functions.  The "Click" event is still called and used as it ever was, and you can still use the .Checked and .Enabled properties of the menu objects to change menu styles at run-time.

And the best thing about GM components is that because they are standard modules, they compile right into your application and do NOT require any additional DLL's, Controls, or components to be installed on the user's machine for it to work (as most other menu solutions do).  This gives you flexibility, power, and peace of mind knowing that you won't have to fight "DLL Hell".


HOW DOES IT WORK ?

The only way that you can "take control" of the menu systems within Windows® is to use "sub-classing".  Sub-classing is where you tell Windows to send the messages that are generated by the keyboard, mouse, and/or other applications (meant for the form in question) to a function that you specify within your application.  It is then your responsibility to properly process these messages, or pass them along to their original "message processor".  The GM components use these messages to properly draw the menus in a graphical style according to the settings specified within the cGraphicalMenus class.

The problem with using sub-classing within the Visual Basic Integrated Development Environment (VB IDE) is that it makes debugging very difficult (and if you don't know what you're doing... IMPOSSIBLE).  The good news is that all the sub-classing work is handled for you by the GM components and if you are not ready to do a final compile, you can simply not call the method that starts the sub-classing process, thus avoiding these debugging problems.


WHAT DOES IT LOOK LIKE WHEN ALL IS SAID AND DONE ?

As described above, when properly setup the GM components change standard Visual Basic menus like this:

GM1.gif (1930 bytes)

into menus that containing custom icons and styles like this:

  OR    OR 
 


WHAT ARE THE PROS AND CONS OF USING GM ?

PROS

CONS

•   Because the GM components compile right into your application, there are no DLLs, Controls, or extra components to re-distribute with your program.  This means SMALLER and simpler installations.  This also means that there's no worrying about whether you have the right components for VB 5 or VB 6.  The GM components work perfectly for either!

•  No DLLs, Controls, or extra components to distribute equals no component version nor compatibility problems.  NO DLL HELL!

•  No need to alter your existing VB code, just add a few lines of code to start the GM components and away you go!

•  The Graphical Menus components are easy to call and use via the interface provided in the "cGraphicalMenus" class.

•  The GM components offer several styles of menu selection, which gives you flexibility in designing your application's look and feel.

•  The GM components give you the ability to change the menu font colors and background colors to give you a more dynamic look.

•  You can add either BITMAP or ICON pictures to your menus.  Also, if you use BITMAPS for your menu pictures, you can specify whether you'd like to make the BITMAPs transparent or not.

•  The menu style, colors, pictures, and transparencies can all be changed dynamically at run-time to give you even greater flexibility and functionality.

•  You can go through the source code of the GM components to see how it works at no additional expense.

•  You get great looking menus with very little processing overhead.
 

•   Sub-classing causes problems within the VB IDE while running your application in "debug" mode.  However, this can be avoided by simply not calling the method that starts the sub-classing process until you are ready to compile the program.

 


HOW ABOUT A TEST DRIVE ?

SURE!  I've compiled a sample program to demonstrate what you can do with the GM components and how it will look and feel at run-time.  I've compiled this sample program in both VB 5 and VB 6 for your convenience.  Use one of the following links to download the appropriate sample:

GM Demo for Visual Basic 5.0

GM Demo for Visual Basic 6.0
 


HOW CAN I GET GRAPHICAL MENUS ?

Normally when I create code like this, I simply post it on this site so that anyone that is interested can just find what they need, download it, and use it free of charge.  However, because of the amount of time and effort that I put in on this code as well as the value of this code, I decided to charge a small fee for the right to use it.  There are NO royalty fees, hidden charges, special costs, or usage stipulations.  I do however ask the following of you if you are to use this code:

•  If this code is being used at a software development company that the fee
    described below be paid FOR EACH DEVELOPER THAT WILL USE THIS CODE.

•  If this code is being used by a home user or individual, the fee described below
    has only to be paid once, but I ask that you DO NOT GIVE THIS CODE AWAY TO
    OTHERS (in whole or in part) WITHOUT THEM FIRST PAYING THE FEE FOR IT
    AS WELL.

•  DO NOT POST THIS CODE ON ANY INTERNET SITE - EITHER PERSONAL OR PUBLIC

•  When you use it within your code, that you leave the header information at the
    the beginning of each module INTACT and UNCHANGED.  This way, credit is given
    where credit is due.

So you're asking, "how much is this gunna cost me?"

I figure that the cost of $15.00 USD per user is a very reasonable cost for what the Graphical Menus components offer.

or you can pay by using your PayPal account - it's fast, it's FREE, and it's secure!:

VISA  VISA - Debit Card
Master Card  Master Card - Debit Card
Discover  American Express
e-check

CLICK HERE TO MAKE PAYMENT ONLINE
If you use PayPal, you can use a standard Master Card or VISA, as well as a Master Card or VISA debit/checking card and you will not accrue any additional charges for doing so.

Once I have received your payment for the Graphical Menus components, I will Email you the source code for the Graphical Menus components as well as the source code to a fully functioning demo program to illustrate the use of the GM components.  If you prefer, I can send you the code on a 3.5 in. floppy diskette.

Please send me an Email once you have sent a check, or put in a payment for the GM components with your name, Email, and address.  That way I can look for the payment, and send the code off to you once the payment arrives.


MORE INFORMATION, OR QUESTIONS ?

If you have questions, or need more information, or would like to send feedback, please feel free to write to me at the following Email address:

vbz@thevbzone.com

 


MAIN   |  DOWNLOADS  |  SAMPLE CODE  |  STEP BY STEP  |   DISCUSSION BOARD  |  LINKS  |  AUTHOR
E-MAIL