No announcement yet.

EZGUI - Features (what it can do for you)

  • Filter
  • Time
  • Show
Clear All
new posts

  • EZGUI - Features (what it can do for you)

    Yes, the long awaited EZGUI 1.0 has finally been released !

    Part 1

    For those of you who would like a little more information about EZGUI and what it can do for you, here is a Summary of EZGUIs main features.

    EZGUI is a "complete" GUI engine

    What this means is that it not only helps you create your Dialogs (called Forms in EZGUI), but it handles many of the common runtime chores your programs need to handle. Even if you could create a nice GUI using the API (SDK style), you would still have to process messages, handle scrollbar messages, handle color messages and program actions for controls. EZGUI gives you nearly 150 functions for the most common tasks used in a Windows application.

    First, lets start with the WM_COMMAND message. Each control type has its own API constants for different messages. Its hard to remember them all. EZGUI simplifies things like this:

    EZGUI has a single callback procedure for "all" events for "all" Dialogs called:

    EZ_Events(FormName$, CID&, CMsg&, CVal&, Cancel&)

    FormName$ is a text string that contains the Name of your Form
    CID& is the Controls ID number
    CMsg& is the controls message for an event
    CVal& is a secondary value passed for an event
    Cancel& allows you to cancel some actions (like closing a Form)

    With a simply Select case structure you can parse out the events.

    EZ_Events(FormName$, CID&, CMsg&, CVal&, Cancel&)
    Select Case FormName$
       case "FORM1"
          Select case CID&
             case 100    ' a buttons ID #
                if CMsg&=%EZ_Click then
                    ' do something
                end if
          End Select
       case "FORM2"
       case "MYFORM"
       case else
    End Select
    End Sub
    The EZGUIs "concept" is to simplify working with your GUI as much as possible and here is some of the ways it does this.

    There is only one Event procedure for "all" Forms (Dialogs)

    Dialogs (Forms) are referenced by a Name rather than by using a variable to track a window Handle. This is similiar to how VB tracks forms.

    The messages (Events) passed the the EZ_Events procedure have been preprocessed and if possible, they have been converted to one of the "universal" EZGUI constants listed below:


    Subclassed control messages:


    Rather than have a different set of constants for each control type, EZGUI converts "all" messages for any EZGUI supported control, to one of its own "Universal" message constants. The above constants handle most of the common events for most controls.

    This makes your code more readable and easier to write.

    ie. If a Combobox or a Listbox have a different item selected then they both receive an %EZ_Change event. The newly selected index for the item is passed in the CVal& parameter.

    ie. If a Scrollbar or an UpDown control have been activated and their value has been changed, they both receive an %EZ_Change event and the new value is passed in the CVal& parameter.

    ie. If you Click the mouse on a Button, Label, Icon or Picture control they all receive a %EZ_Click event.

    For Subclassed controls:

    ie. If "any" control has been dragged and then dropped (moved) they all receive an %EZ_Drag and then %EZ_Drop event.

    Note: EZGUI has its own Visual Design engine built in ! You can move controls and resize them. Make your own Visual Designer !

    It's as easy as 1, 2, 3

    (to be continued)
    Chris Boss
    Computer Workshop
    Developer of "EZGUI"

  • #2

    Part 2

    EZGUI uses a very streamlined and simple format for its applications. Using just three predefined CallBack procedures (a Callback is where an "external" library calls "back" into your program, rather than your program calling it).

    Here is a Minimal sampe EZGUI application that defines two windows, with a button on each and one window is a child of the other window.

    $DIM ALL
    %EZ_LOADSTUB   =   0
    $Include ""
    ' Put your Globals and Declares here
    ' --------------------
    $Include ""
    ' --------------------
    Sub EZ_Main(VerNum&) EXPORT
    EZ_Color 0, 30
    EZ_Form "Main", "", "My Main Window", 0,0, 50, 20, "C"
    End Sub
    ' ------------------------------------------------------
    Sub EZ_DesignWindow(FormName$) EXPORT
    Select Case FormName$
        case "MAIN"
          EZ_Color -1, -1
          EZ_UseFont 5
          EZ_Button 100, 1,1, 20, 1.5, "Main Button", "T"
          EZ_UseFont -1
          EZ_Color 0, 17
          EZ_Form "Child", "Main", "My Child Window", 10,10, 22, 5, "RN"
        case "CHILD"
          EZ_Color -1, -1
          EZ_Button 200, 1,1, 20, 1.5, "Child Button", "T"
        case else
    End Select
    End Sub
    ' ------------------------------------------------------
    Sub EZ_Events(FormName$, CID&, CMsg&, CVal&, Cancel&) EXPORT
    Select case FormName$
        case "MAIN"
             Select case CID&
                case 100
                   if CMsg&=%EZ_Click then msgbox "You clicked Main Button !"
                case else
             end select
        case "CHILD"
            Select case CID&
                case 200
                   if CMsg&=%EZ_Click then msgbox "You clicked Child Button !"
                case else
            End Select
        case else
    End Select
    End Sub
    ' ------------------------------------------------------
    See how "simple" and "clean" your code will look !

    You will notice the coordinates of the Form and Buttons are NOT in pixels (and NOT Dialog Units).

    They are "Character" coordinates !

    Yes, EZGUI uses a Character based coordinate system !

    This makes it very easy for even DOS Basic programmers to write code.

    EZGUI predefined the Character size as 8 x 16 pixels, which is approximately the size of the system font.

    You will also notice the EZ_Color command !

    It works just like the DOS Color command !

    EZGUI predefines 32 colors. The first 16 colors are the standard QB colors. The second 16 are a pastel version of the first 16 colors. You can define over 300 unique colors in EZGUI.

    The Colors are referenced by their color "number" and NO handles need to be used to track the color (and its brush).

    If you want to use the "Default" windows colors for a control or form then you simply use:

    EZ_Color -1, -1 ' sets colors to defaults

    You will also note that there are absolutely NO "Style Constants" for either Forms or Controls ! You can forget remembering all those API Style constants (every Control has its own set of constants in the API) !

    EZGUI uses a simply "Property" string to define the styles. Each property is a single easy to remember character or letter.

    The properties for Forms are:

    C - Center Window
    P - Page on another Form
    M - Modal Window
    T - Topmost Window
    N - NO System Menu
    S - Splash Window
    H - Hidden window
    ^ - Allow maximize
    Z - Resizable Border
    R - Relative to Owner (position)
    V - Vertical Scrollbar
    B - Both Scrollbars

    The properties for Controls are (Universal among all controls) :

    A = Alphabetic Sort                     ComboBox,  ListBox
    B = Both Scrollbars                     Text  
    C = Center Text                         Text, Label
    D = Disabled                            All controls
    E = Edit Text                           Text,  ComboBox,  ListBox
    F = Flat Edge or Style                  Text,  CheckBox,  Radio
                                            ListBox,  Label
                                            Picture,  Icon
    G = Group                               All controls except Progress Bar
    H = Hidden                              All controls
    J = Let Windows AdJust Height           ComboBox,  ListBox
    L = Left Text                           CheckBox,  Radio,  Label
    M = Multi Line or Select or Row         Text,   ListBox,   Tab
    N = Numeric Text                        Text
    O = Open Edge or
        act like Option Button              Toolbar,  Button
                                            PButton, IButton
    R = Raised Edge                         Text, CheckBox,  Radio
                                            ListBox,  Label
                                            Picture,  Icon
    S = Sunken Edge                         Text, CheckBox,  Radio
                                            ListBox,  Label
                                            Picture,  Icon
    T = TabStop                             All controls
                                            except Progress Bar and Frame
    U = Uppercase Text                      Text
    V = Vert.Scrollbar                      Text,  ListBox
    X = Act like a CheckBox                 Button,  PButton, IButton
    Z = Resizable Edge                      Text, CheckBox,  Radio
                                            ListBox,  Label
                                            Picture,  Icon
    * = Password (asterisk)                 Text
    > = Use Columns                         ListBox
    @ = Set as Default Button               Button
        Note:  Must use ID # = 1
    The "consistancy" of using "universal" properties makes it much easier to remember them.

    Chris Boss
    Computer Workshop
    Developer of "EZGUI"


    • #3

      Part 3

      The Visual Designer !

      Yes, EZGUI comes with its own Visual Designer !

      Now you can create your Forms (Dialogs) Visually and then have the Visual Designer generate the necessary code for you.

      There is no need of a Third Party Resource editor with EZGUI !

      The Visual Designer also can set the Fonts, Colors and even Bitmaps for controls in your Form.

      Note: The following Image of the Visual Designer is in PNG format
      ( is a NON GIF web site)
      PNG Images may not be supported by all browsers !

      If your browser does not support the PNG format:

      click on the Link below to see the Image as a JPG (70 KB)

      Chris Boss
      Computer Workshop
      Developer of "EZGUI"


      • #4

        Part 4

        Advanced Features of EZGUI

        EZGUI has too many features to list here, but here are some of the powerful features of EZGUI:

        Masked Edit

        Add a ToolTip for any Control

        Set Colors and Fonts for Controls

        Put Controls on different Layers and display any single Layer
        with a single command

        Move and Resize Controls from code

        Advanced ListBox and ComboBox Search functions

        Show, Hide, Disable, Maximize, Minimize any Form

        Set the Caption Bar Icon dynamically

        Change the ZOrder (and Tab Order) of controls dynamically

        Drag a Form from its Client area

        Create Topmost Forms that stay above other programs windows.

        Drag and Drop files from Windows Explorer to an EZGUI app

        Build and modify Menus dynamically

        Display PopUp Menus

        Display Common Dialogs (Open File, Save File, Colors, Fonts)

        Use some Common Controls like Toolbars, Tab controls, Progress bars and UpDown controls

        Custom MessageBox function

        Create Keyboard Accelerators for any Form

        Copy and Retrieve text from the Clipboard

        Get your applications Path and Filename

        Create Timer controls

        Use EZ_DoEvents

        Access the Windows Registry

        Load Icons and Bitmaps from disk files or from a resource file

        Create a Hook into the main EZGUI Dialog procedure and Message loop to intercept messages before EZGUI processes them.

        Sub class controls with a single EZGUI command

        Sub Classed controls can be activated to use the builtin Visual Design engine so they can be moved and sized by the end user of your application

        Display Help files

        and more .....

        <FONT SIZE=4 FACE="Arial">
        To purchase EZGUI online
        go to our web site at:

        <FONT SIZE=6 FACE="Arial">

        Chris Boss
        Computer Workshop
        Developer of "EZGUI"


        • #5
          ... Have you contacted PowerBasic and requested to have EZGUI listed in the "ADD-ON VENDOR" list. Personally, I think they should highlight EZGUI as one of the most valuble "add-ons" in which any PB programmer could invest.
          ... I have been creating several simple programs using EZ-Design to create the EZGUI forms. It makes the process quick and painless and I can have the job done in a fraction of the time it would take to do the samething using DDT. Being a DOS basic then PB/CC basic programmer.. EZGUI and the EZ-Design engine has allowed me to step into GUI programming and still feel comfortable!

          Marty Francom
          [email protected]


          • #6
            >I have been creating several simple programs using EZ-Design to create the EZGUI
            >forms. It makes the process quick and painless....

            >Being a DOS basic then PB/CC basic programmer.. EZGUI and the EZ-Design engine
            >has allowed me to step into GUI programming and still feel comfortable!

            I've hesitated to comment on EZGUI, since I'm involved in marketing it, I figured everyone would say that I was a bit 'biased' . However, you've 'echoed' my sentiments regarding EZGUI, and that's really the reason why I was interested in the first place, in marketing it.

            I've spent thousands of hours programming in DOS, and almost no time doing anything with Windows. I've got Visual Basic, but I've not really done anything with it much. I've had trouble making the 'mind shift' from DOS programming to Windows programming. What I found when I sat down with EZGUI and PB/DLL 6.0 was that EZGUI itself helped me to understand HOW Windows programs work, 'under the hood' so to speak. EZGUI allowed me to put together a simple program in VERY short time, that would have been MUCH harder for me to have done in VB, at that time. So, EZGUI has been a VERY good 'learning tool' for me, not just to allow me to program, but allowing me to learn a little bit about HOW Windows programming works. When I saw what EZGUI could do for me, and others, I decided quickly that I wanted to market this software through my company.

            John Rayfield, Jr.
            Rayfield Communications, Inc.
            Springfield, Missouri


            • #7
              EZGui support link inop:

              ----- Transcript of session follows -----
              ... while talking to
              >>> RCPT To:<[email protected]>
              <<< 550 Relay SPAM Denied....
              550 <[email protected]>... User unknown


              • #8
                Chris --
                An idea of EZGUI is nice, but I have two questions.
                1) Could be I lost something, but I don't see "demo" now.
                2) Do you plan to replace run-time DLL by generated PB-code ?
                (to have "free" hands and to avoid including in each program big DLL without real necessary).


                • #9
                  >EZGui support link inop:

                  > quote:

                  > ----- Transcript of session follows -----
                  > ... while talking to
                  > >>> RCPT To:
                  > <<< 550 Relay SPAM Denied....
                  > 550 ... User unknown
                  > -------------
                  > Ron

                  Thanks Ron. We'll check it out. I've been having trouble, lately, with my AT&T internet connection, as well.

                  John Rayfield, Jr.
                  Rayfield Communications, Inc.
                  Springfield, Missouri


                  • #10
                    Hi Chris

                    I have 3 questions

                    1. Is it possible that all forms and controls of EZGUI will support
                    the extended styles WS_EX_RIGHT AND WS_EX_RTLREADING

                    2. Is it possible to "take over" a control and subclass it entirely, like
                    painting the control etc,

                    3. Is it possible to have a demo version (limited with some sort of Nag screen) to see if it's usable to me.


                    mailto:[email protected][email protected]</A>

                    [This message has been edited by Gafny Jacob (edited January 30, 2000).]


                    • #11

                      I removed the Demo from the web site.

                      The EZGUI DLL has gone though a great deal of changes, since the first demo and I haven't create a new one yet.

                      NO, there will not be any conversion to 100% code. EZGUI is an engine.

                      The engine is complex enough, where you would probably introduce errors into it, if you had access to its source code. It is much more reliable to use it as a DLL.

                      The "Concept" of a GUI engine requires more than just GUI creation. EZGUI does much more than this. It is an "Engine" that "controls" your application.

                      For what EZGUI does, I think its 122 KB size, would never be considered a "big DLL", so you don't have to worry about your apps being too big. To accomplish the same thing with VB would require a few meg in runtimes (includes some OCXs).


                      EZGUI has a function called EZ_ControlEX which allows you to create any Windows control using actual API styles, rather than EZGUI properties. This command allows you to even use custom controls that have been registered with Windows. This would allow you to "customize" any control, by using "seldom" used styles, which EZGUIs regular control creation commands do not support. By using the supplied command for creating customized controls, your control benefits from the features of the EZGUi engine (like Color and Font control, subclassing, setting values for the control like text, etc).

                      EZGUI handles the subclassing for you ! Just use the command EZ_SubClass and you can have EZGUI subclass the control for you. The docs explain how to get access to the actual Windows messages passed to your program. The EZ_Events routine passes a pointer to a Long Array that contains the message values (hWnd, Msg, wParam, lParam) which can easily be accessed in an EZGUI app, when your control receives an %EZ_SubClass event.

                      Not only can you easily subclass controls in EZGUI, but you can even make a Hook directly into EZGUIs Dialog procedure and Message loop.

                      NO, there are no immediate plans for a Demo version !
                      EZGUI is NOT Shareware.

                      If you purchase the Packaged version (not email version), there is a 30 day moneyback guarantee (similiar to what PowerBasic does). The packaged versions comes with a printed manual.

                      Chris Boss
                      Computer Workshop
                      Developer of "EZGUI"


                      • #12
                        I see your screen print has a printer icon on the toolbar.
                        Are there printing features built in to EZ Gui or do you have
                        to code them yourself?
                        Warped by the rain, Driven by the snow...



                        • #13
                          Jim, I've passed your question on to Chris Boss. He's having trouble accessing the PB website, so I'll pass the questions on to him and then either post a reply here or directly to email if you leave us your email address.

                          Also, you can email directly to Chris for support at:

                          [email protected]

                          Also, we've set up an email list on for EZGUI. You can subscribe to this list by going to:


                          Or, you can subscribe by sending email to:

                          [email protected]

                          John Rayfield, Jr.
                          Rayfield Communications, Inc.
                          Springfield, Missouri


                          • #14
                            >I see your screen print has a printer icon on the toolbar.
                            >Are there printing features built in to EZ Gui or do you have
                            >to code them yourself?

                            Jim, here's an answer from Chris:

                            EZGUI does NOT have any Print features at this time. EZGUI handles your GUI.

                            There may be future "separate" Print engines available for EZGUI and we also encourage the use of two available print engines with EZGUI apps:

                            (1) Don Dickinsons DDOC (Excellent Print engine)

                            (2) Lance Edmonds print engine

                            A good Print engine, would entail more than simply just a few print functions. It needs to be complete. DDOC is an amazing package that even had a Preview window.

                            It is best to use a tool that has been "optimized" for the task at hand.

                            John Rayfield, Jr.
                            Rayfield Communications, Inc.
                            Springfield, Missouri


                            • #15
                              I am back !

                              For a couple of days, I could not access the PB web site. I think there was some problem with Internet traffic here on the East Coast. Today everything is back to normal.

                              I have been updating our web site with more stuff each day. Today, I will be working on the "Multimedia" Online support section (requires Win95,98,NT and DirectX 5 or greater and either MS IExplorer or Netscape)

                              Chris Boss
                              Computer Workshop
                              Developer of "EZGUI"


                              • #16

                                What is EZGUI really ?

                                While most may point to the Visual Design aspect of EZGUI and say "EZGUI is a Visual Designer", the reality is:

                                EZGUI is a GUI Engine !

                                EZGUIs Visual Designer obviously couldn't "hold a candle" compared to the VB Visual Editor. I did not design EZGUI to be a VB look alike.

                                While, I felt it important to have some Visual Design capabilities so I can build my Forms (Dialogs) quicker, I was most concerned with "how" a program worked, not just how it looked.

                                GUI design is only "half" (maybe less) of the process in building a Windows program. The functionality of the program is what is really important.

                                So, what were the main goals in developing EZGUI ?

                                The first two goals are the same goals that PowerBasic has had:

                                (1) Very small executables (EZGUI is only 122 KB)

                                (2) Very fast native compiled code (EZGUI is for PB and written in PB)

                                The functionality of EZGUI has lived up to those two first goals. The entire runtime DLL is only 122 KB and yet has 150 functions in it that handle nearly 90% of what a Windows program needs to do. The DLL itself is fast since it is written in PB DLL 5.0. Your app will be fast since it to will be compiled using a PB product.

                                Now, if I go by my Beta testers feedback, this much I can say:

                                While the "Visual Design" part of EZGUI could be (and will be in version 2.0) improved upon greatly, the runtime engine itself will "blow away" a VB app. No VB app can come close to the size and speed of an EZGUI app (and PowerBasic).

                                EZGUI does things that would require more than just the VB 1.3 meg runtime. It handles things like some common controls and the common Dialogs that would require a few meg more in OCXs. EZGUI does things that would require a VB programmer to resort to the Windows API.

                                VB not only shields a programmer from the API but you can not access its internal workings. EZGUI allows you to even make a direct Hook into its Dialog Procedure and Messageloop if you need it.

                                EZGUI is not a VB "want a be", but is a powerful GUI engine for building PowerBasic apps. You may have to work a little harder to build an app with EZGUI (and PB) than with VB, but you will have more "Power" in your app when done.

                                Lastly, while EZGUI apps can be built without resorting to the API, this does not mean we discourage using the API. Actually, we will encourage our customers to progressively learn some of the API, so they can build apps that go beyond the abilities of EZGUI.

                                Chris Boss
                                Computer Workshop
                                Developer of "EZGUI"


                                • #17
                                  To Jim Padgett,
                                  .. Until a print engine is included in the EZGUI program I have been using Lance Edmonds 'DLL-Print' it now has a preview window. Work well for me. Also, I have been experimenting with calling routines in DLL's supplied with Windows. You can call the MS- Internet Explorers print engine using a shell command. The document you want to print needs to be formated using HLML coding. But the advantage is you can print very complex forms that include GIF's, JPG and other images. The command is as follows:
                                  SHELL "RUNDLL32.EXE MSHTML.DLL, PrintHTML (html doc to print)"
                                  replace (html doc to print) with i.e. C:\TEMP\MYDOC.HTML

                                  Marty Francom
                                  [email protected]


                                  • #18
                                    I seem to remember a promise of VBX support which would hopefully
                                    mean PBDLL2.0 support ????


                                    • #19
                                      I seem to remember a promise of VBX support which would hopefully mean PBDLL2.0 support?
                                      When was that? Doesn't seem to be any reference to it on this BB. Does anybody actually still use VBX controls?

                                      I've recently been looking at what would be involved in supporting VBX controls in 16-bit and 32-bit applications. Won't be easy, but should be do-able.
                                      If you try to make something idiot-proof, someone will invent a better idiot.


                                      • #20
                                        NO, EZGUI does not support VBX or even OCX.

                                        EZGUI is a 32 bit engine, not 16 bit !

                                        It will not work with PB 2.0 !

                                        I would think by now, that most if not all, programmers would have switched to 32 bit. Both DOS and 16 bit Windows will slowly disappear, as there is no guarantee Microsoft will continue to support either in the future.

                                        The cost up "upgrading" to PB 6 is not very expensive, so it is worth upgrading.

                                        Chris Boss
                                        Computer Workshop
                                        Developer of "EZGUI"