A Sample GUI Program
This little program displays multiplication tables based on the Button that the user clicks. It's a complete 32-bit Windows program weighing in at a staggeringly low 6,688 bytes! That's smaller than most simple MSDOS programs!
Here is the complete program BCX source code for Tiny Times Table.
'========================================================================
' Tiny Times Table by Kevin Diggins(2000) -- A BCX BASIC sample program
'========================================================================
GUI
"TINY_TIMES_TABLE"
'========================================================================
CONST
ID_Edit=
100
CONST
ID_Edit1=
101
CONST
ID_Button1=
102
CONST
ID_Button2=
103
CONST
ID_Button3=
104
CONST
ID_Button4=
105
CONST
ID_Button5=
106
CONST
ID_Button6=
107
CONST
ID_Button7=
108
CONST
ID_Button8=
109
CONST
ID_Button9=
110
CONST
ID_Button10=
111
CONST
ID_Exit=
112
'========================================================================
DIM
Form1AS
CONTROLDIM
Edit1AS
CONTROLDIM
Button[
10
]
AS
CONTROL'========================================================================
GLOBAL
MainMenuAS
HANDLEGLOBAL
FileMenuAS
HANDLE'========================================================================
SUB
FormLoadDIM
RAW
counter Form1=
BCX_FORM
(
"Tiny Times Table"
,0
,0
,137
,155
)
Edit1=
BCX_EDIT
(
""
, Form1, ID_Edit,2
,2
,109
,140
)
FOR
counter=
0
TO
9
Button[
counter]
=
BCX_BUTTON
(
TRIM$
(
STR$
(
counter+
1
)
)
, _ Form1,102
+
counter,115
,7
+
(
counter*
13
)
,21
,14
)
NEXT
'========================================================================
' Start Building Menus
'========================================================================
MainMenu=
CreateMenu(
)
' CreateMenu returns a MENU HANDLE
FileMenu=
CreateMenu(
)
' CreateMenu returns a MENU HANDLE
'========================================================================
' Build the File Menu First
'========================================================================
AppendMenu(
FileMenu,MF_STRING ,ID_Exit ,"E&xit"
)
'========================================================================
' Build the Main Menu Next
'========================================================================
' Attach the File menu to the main menu
'========================================================================
InsertMenu(
MainMenu, ID_Edit , MF_POPUP , FileMenu ,"File"
)
'========================================================================
SetMenu(
Form1,MainMenu)
' Activate the menu
CENTER
(
Form1)
SHOW
(
Form1)
END
SUB
BEGIN
EVENTS
SELECT
CASE
CBMSG
'**********************
CASE
WM_COMMAND'**********************
IF
CBCTL
=
ID_Button1THEN
BuildTable(
1
)
IF
CBCTL
=
ID_Button2THEN
BuildTable(
2
)
IF
CBCTL
=
ID_Button3THEN
BuildTable(
3
)
IF
CBCTL
=
ID_Button4THEN
BuildTable(
4
)
IF
CBCTL
=
ID_Button5THEN
BuildTable(
5
)
IF
CBCTL
=
ID_Button6THEN
BuildTable(
6
)
IF
CBCTL
=
ID_Button7THEN
BuildTable(
7
)
IF
CBCTL
=
ID_Button8THEN
BuildTable(
8
)
IF
CBCTL
=
ID_Button9THEN
BuildTable(
9
)
IF
CBCTL
=
ID_Button10THEN
BuildTable(
10
)
IF
CBCTL
=
ID_ExitTHEN
PostQuitMessage(
0
)
EXIT
FUNCTION
END
SELECT
END
EVENTS
SUB
BuildTable(
A)
DIM
RAW
ILOCAL
Buf$*
5000
Buf$=
""
FOR
I=
1
TO
15
Buf$=
Buf$&
" "
&
STR$
(
A)
&
" X "
&
STR$
(
I)
&
" = "
&
STR$
(
I*
A)
&
CRLF$
NEXT
SetWindowText(
Edit1,Buf$)
END
SUB