I have a program that needs numbers entered into a gui.
I want do not want the user to just be able to focus(use) any textbox they please. I want ordered entry like you would have with most msdos interfaces.
How can i do that, maybe there is an example out there but i cannot seem to find any.
I was able to use CONTROL DISABLE to keep people from accessing a textbox.
I will try also to implement a return for input of text boxes.
I believe if i where given a general description, i could follow that.
the program i am working on is listed below as example as a picture is worth a thousand words
i am doing my best to learn this gui stuff and it is really hard to learn all those type messages placed into a callback and properties on controls and dialogs down.
Thanks in advance
paul
I want do not want the user to just be able to focus(use) any textbox they please. I want ordered entry like you would have with most msdos interfaces.
How can i do that, maybe there is an example out there but i cannot seem to find any.
I was able to use CONTROL DISABLE to keep people from accessing a textbox.
I will try also to implement a return for input of text boxes.
I believe if i where given a general description, i could follow that.
the program i am working on is listed below as example as a picture is worth a thousand words
i am doing my best to learn this gui stuff and it is really hard to learn all those type messages placed into a callback and properties on controls and dialogs down.
Thanks in advance
paul
Code:
'compiled with pbwin 8.04 #PBFORMS CREATED V1.51 '------------------------------------------------------------------------------ ' The first line in this file is a PB/Forms metastatement. ' It should ALWAYS be the first line of the file. Other ' PB/Forms metastatements are placed at the beginning and ' end of "Named Blocks" of code that should be edited ' with PBForms only. Do not manually edit or delete these ' metastatements or PB/Forms will not be able to reread ' the file correctly. See the PB/Forms documentation for ' more information. ' Named blocks begin like this: #PBFORMS BEGIN ... ' Named blocks end like this: #PBFORMS END ... ' Other PB/Forms metastatements such as: ' #PBFORMS DECLARATIONS ' are used by PB/Forms to insert additional code. ' Feel free to make changes anywhere else in the file. '------------------------------------------------------------------------------ #COMPILE EXE #DIM ALL '------------------------------------------------------------------------------ ' ** Includes ** '------------------------------------------------------------------------------ #PBFORMS BEGIN INCLUDES #IF NOT %DEF(%WINAPI) #INCLUDE "WIN32API.INC" #ENDIF #PBFORMS END INCLUDES '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ ' ** Constants ** '------------------------------------------------------------------------------ #PBFORMS BEGIN CONSTANTS %IDD_DIALOG1 = 101 %IDC_TEXTBOX1 = 1001 %IDC_TEXTBOX2 = 1002 %IDC_TEXTBOX3 = 1003 %IDC_TEXTBOX4 = 1004 %IDC_TEXTBOX5 = 1005 %IDC_TEXTBOX6 = 1006 %IDC_TEXTBOX7 = 1007 %IDC_TEXTBOX8 = 1008 %IDC_TEXTBOX9 = 1009 %IDC_TEXTBOX10 = 1010 %IDC_TEXTBOX11 = 1011 %IDC_TEXTBOX12 = 1012 %IDC_TEXTBOX13 = 1013 %IDC_TEXTBOX14 = 1014 %IDC_TEXTBOX15 = 1015 %IDC_TEXTBOX16 = 1016 %IDC_TEXTBOX17 = 1017 %IDC_TEXTBOX18 = 1018 %IDC_TEXTBOX19 = 1019 %IDC_TEXTBOX20 = 1020 %IDC_TEXTBOX21 = 1021 %IDC_TEXTBOX22 = 1022 %IDC_LABEL1 = 2001 %IDC_LABEL2 = 2002 %IDC_LABEL3 = 2003 %IDC_LABEL4 = 2004 %IDC_LABEL5 = 2005 %IDC_LABEL6 = 2006 %IDC_LABEL7 = 2007 %IDC_LABEL8 = 2008 %IDC_LABEL9 = 2009 %IDC_LABEL10 = 2010 %IDC_LABEL11 = 2011 %IDC_LABEL12 = 2012 %IDC_LABEL13 = 2013 %IDC_LABEL14 = 2014 %IDC_LABEL15 = 2015 %IDC_LABEL16 = 2016 %IDC_LABEL17 = 2017 %IDC_LABEL18 = 2018 %IDC_LABEL19 = 2019 %IDC_LABEL20 = 2020 %IDC_LABEL21 = 2021 %IDC_LABEL22 = 2022 #PBFORMS END CONSTANTS '------------------------------------------------------------------------------ GLOBAL hGTFONT AS LONG FUNCTION MakeFont(BYVAL FFont AS STRING, BYVAL PointSize AS LONG) AS LONG LOCAL hDC AS LONG LOCAL CyPixels AS LONG hDC = GetDC(%HWND_DESKTOP) CyPixels = GetDeviceCaps(hDC, %LOGPIXELSY) ReleaseDC %HWND_DESKTOP, hDC PointSize = (PointSize * CyPixels) \ 72 FUNCTION = CreateFont(0 - PointSize, 0, 0, 0, %FW_NORMAL, 0, 0, 0, _ %ANSI_CHARSET, %OUT_TT_PRECIS, %CLIP_DEFAULT_PRECIS, _ %DEFAULT_QUALITY, %FF_DONTCARE, BYCOPY FFont) END FUNCTION '------------------------------------------------------------------------------ ' ** Declarations ** '------------------------------------------------------------------------------ DECLARE CALLBACK FUNCTION ShowDIALOG1Proc() DECLARE FUNCTION ShowDIALOG1(BYVAL hParent AS DWORD) AS LONG #PBFORMS DECLARATIONS '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ ' ** Main Application Entry Point ** '------------------------------------------------------------------------------ FUNCTION PBMAIN() ShowDIALOG1 %HWND_DESKTOP END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ ' ** CallBacks ** '------------------------------------------------------------------------------ CALLBACK FUNCTION ShowDIALOG1Proc() SELECT CASE AS LONG CBMSG CASE %WM_INITDIALOG ' Initialization handler CASE %WM_NCACTIVATE STATIC hWndSaveFocus AS DWORD IF ISFALSE CBWPARAM THEN ' Save control focus hWndSaveFocus = GetFocus() ELSEIF hWndSaveFocus THEN ' Restore control focus SetFocus(hWndSaveFocus) hWndSaveFocus = 0 END IF CASE %WM_COMMAND ' Process control notifications SELECT CASE AS LONG CBCTL CASE %IDC_TEXTBOX1 CASE %IDC_TEXTBOX2 CASE %IDC_TEXTBOX3 CASE %IDC_TEXTBOX4 CASE %IDC_TEXTBOX5 CASE %IDC_TEXTBOX6 CASE %IDC_TEXTBOX7 CASE %IDC_TEXTBOX8 CASE %IDC_TEXTBOX9 CASE %IDC_TEXTBOX10 CASE %IDC_TEXTBOX11 CASE %IDC_TEXTBOX12 CASE %IDC_TEXTBOX13 CASE %IDC_TEXTBOX14 CASE %IDC_TEXTBOX15 CASE %IDC_TEXTBOX16 CASE %IDC_TEXTBOX17 ' CASE %IDC_TEXTBOX18 ' CASE %IDC_TEXTBOX19 ' CASE %IDC_TEXTBOX20 ' CASE %IDC_TEXTBOX21 ' CASE %IDC_TEXTBOX22 END SELECT END SELECT END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ ' ** Dialogs ** '------------------------------------------------------------------------------ FUNCTION ShowDIALOG1(BYVAL hParent AS DWORD) AS LONG LOCAL lRslt AS LONG 'changed font size ' DIALOG FONT "ARIAL",8 #PBFORMS BEGIN DIALOG %IDD_DIALOG1->-> LOCAL hDlg AS DWORD DIALOG NEW hParent, "data inputr", 70, 70, 294, 240, _ %WS_POPUP OR %WS_BORDER OR %WS_DLGFRAME OR %WS_THICKFRAME OR _ %WS_SYSMENU OR %WS_CLIPSIBLINGS OR %WS_VISIBLE OR %DS_MODALFRAME OR _ %DS_3DLOOK OR %DS_NOFAILCREATE OR %DS_SETFONT, %WS_EX_CONTROLPARENT _ OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR, TO _ hDlg CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX1, "", 1, 13, 74, 13, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_RIGHT, _ %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX2, "", 92, 13, 106, 13, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_RIGHT, _ %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX3, "", 1, 27, 74, 13, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_RIGHT, _ %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX4, "", 92, 27, 106, 13, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_RIGHT, _ %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX5, "", 1, 41, 74, 13, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_RIGHT, _ %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX6, "", 92, 41, 106, 13, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_RIGHT, _ %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX7, "", 92, 75, 106, 13, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_RIGHT, _ %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX8, "", 92, 90,106, 13, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_RIGHT, _ %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR '----------------------------------------------------------------------- CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX9, "", 1, 105, 74, 13, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_RIGHT, _ %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX10, "", 92, 105, 106, 13, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_RIGHT, _ %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX11, "", 1, 120, 74, 13, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_RIGHT, _ %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX12, "",92, 120,106, 13, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_RIGHT, _ %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX13, "", 92, 135, 106, 13, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_RIGHT, _ %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX14, "", 92, 162,106, 13, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_RIGHT, _ %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX15, "", 92, 177,106, 13, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_RIGHT, _ %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX16, "", 1, 192, 74, 13, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_RIGHT, _ %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX17, "", 92, 192,106, 13, _ %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_RIGHT, _ %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _ %WS_EX_RIGHTSCROLLBAR CONTROL ADD LABEL, hDlg, %IDC_LABEL1, "", 205, 15, 195, 10 CONTROL ADD LABEL, hDlg, %IDC_LABEL2, "", 205, 30, 195, 10 CONTROL ADD LABEL, hDlg, %IDC_LABEL3, "", 205, 44, 195, 10 CONTROL ADD LABEL, hDlg, %IDC_LABEL4, "", 205, 78, 195, 10 CONTROL ADD LABEL, hDlg, %IDC_LABEL5, "", 205, 93, 195, 10 CONTROL ADD LABEL, hDlg, %IDC_LABEL6, "", 205, 108, 195, 10 CONTROL ADD LABEL, hDlg, %IDC_LABEL7, "", 205, 123, 195, 10 CONTROL ADD LABEL, hDlg, %IDC_LABEL8, "", 205, 138, 195, 10 CONTROL ADD LABEL, hDlg, %IDC_LABEL9, "", 205, 165, 195, 10 CONTROL ADD LABEL, hDlg, %IDC_LABEL10, "", 205, 180, 195, 10 CONTROL ADD LABEL, hDlg, %IDC_LABEL11, "", 205, 195, 195, 10 CONTROL ADD LABEL, hDlg, %IDC_LABEL12, "", 1, 5, 195, 10 CONTROL ADD LABEL, hDlg, %IDC_LABEL13, "", 92, 5, 195, 10 CONTROL ADD LABEL, hDlg, %IDC_LABEL14, "", 205, 5, 195, 10 #PBFORMS END DIALOG ' hGTFONT = GetStockObject(%SYSTEM_FIXED_FONT) hGTFONT = MakeFont("Courier New Bold",12) ' hGTFONT = MakeFont("System_Fixed_Font Bold",9) CONTROL SEND hdLG,%IDC_TEXTBOX1,%WM_SETFONT,hGTFONT,%TRUE CONTROL SEND hdLG,%IDC_TEXTBOX2,%WM_SETFONT,hGTFONT,%TRUE CONTROL SEND hdLG,%IDC_TEXTBOX3,%WM_SETFONT,hGTFONT,%TRUE CONTROL SEND hdLG,%IDC_TEXTBOX4,%WM_SETFONT,hGTFONT,%TRUE CONTROL SEND hdLG,%IDC_TEXTBOX5,%WM_SETFONT,hGTFONT,%TRUE CONTROL SEND hdLG,%IDC_TEXTBOX6,%WM_SETFONT,hGTFONT,%TRUE CONTROL SEND hdLG,%IDC_TEXTBOX7,%WM_SETFONT,hGTFONT,%TRUE CONTROL SEND hdLG,%IDC_TEXTBOX8,%WM_SETFONT,hGTFONT,%TRUE CONTROL SEND hdLG,%IDC_TEXTBOX9,%WM_SETFONT,hGTFONT,%TRUE CONTROL SEND hdLG,%IDC_TEXTBOX10,%WM_SETFONT,hGTFONT,%TRUE CONTROL SEND hdLG,%IDC_TEXTBOX11,%WM_SETFONT,hGTFONT,%TRUE CONTROL SEND hdLG,%IDC_TEXTBOX12,%WM_SETFONT,hGTFONT,%TRUE CONTROL SEND hdLG,%IDC_TEXTBOX13,%WM_SETFONT,hGTFONT,%TRUE CONTROL SEND hdLG,%IDC_TEXTBOX14,%WM_SETFONT,hGTFONT,%TRUE CONTROL SEND hdLG,%IDC_TEXTBOX15,%WM_SETFONT,hGTFONT,%TRUE CONTROL SEND hdLG,%IDC_TEXTBOX16,%WM_SETFONT,hGTFONT,%TRUE CONTROL SEND hdLG,%IDC_TEXTBOX17,%WM_SETFONT,hGTFONT,%TRUE ' CONTROL SEND hdLG,%IDC_TEXTBOX18,%WM_SETFONT,hGTFONT,%TRUE ' CONTROL SEND hdLG,%IDC_TEXTBOX19,%WM_SETFONT,hGTFONT,%TRUE ' CONTROL SEND hdLG,%IDC_TEXTBOX20,%WM_SETFONT,hGTFONT,%TRUE ' CONTROL SEND hdLG,%IDC_TEXTBOX21,%WM_SETFONT,hGTFONT,%TRUE ' CONTROL SEND hdLG,%IDC_TEXTBOX22,%WM_SETFONT,hGTFONT,%TRUE 'CONTROL DISABLE hDlg, %IDC_TEXTBOX2 DIALOG SHOW MODAL hDlg, CALL ShowDIALOG1Proc TO lRslt #PBFORMS BEGIN CLEANUP %IDD_DIALOG1 #PBFORMS END CLEANUP FUNCTION = lRslt END FUNCTION '------------------------------------------------------------------------------
Comment