Let's not forget FreeDDT on my site..
------------------
[email protected]
Announcement
Collapse
No announcement yet.
FILE MENU
Collapse
X
-
Here is a simple DDT program made with Chris Boss's FREEWARE DDT
Dialog Editor
Download it at www.ezgui.com :
Code:' ************************************************************* ' Code Generated by EZGUI Freeware Dialog Designer ' ************************************************************* #COMPILE EXE #REGISTER NONE #DIM ALL ' This is helpful to prevent errors in coding ' Remark out the Constants for Controls you Will use in your program ! %NOANIMATE = 1 %NOBUTTON = 1 %NOCOMBO = 1 %NODRAGLIST = 1 %NOHEADER = 1 %NOIMAGELIST = 1 %NOLIST = 1 ' %NOLISTVIEW = 1 ' %NOSTATUSBAR = 1 ' %NOTABCONTROL = 1 ' %NOTOOLBAR = 1 ' %NOTOOLTIPS = 1 %NOTRACKBAR = 1 ' %NOTREEVIEW = 1 ' %NOUPDOWN = 1 #INCLUDE "win32api.inc" ' Must come first before other include files ! #INCLUDE "commctrl.inc" ' The Common Controls include file ! ' ************************************************************* ' ************************************************************* ' EZGUI Library Constants and Declares ' ************************************************************* DECLARE SUB EZLIB_InitFonts() DECLARE SUB EZLIB_DeleteFonts() DECLARE SUB EZLIB_FixSize(BYVAL hDlg&, BYVAL Style&, BYVAL HasMenu&) DECLARE FUNCTION EZLIB_IsTooltip(BYVAL lParam AS LONG) AS LONG DECLARE FUNCTION EZLIB_TooltipID(BYVAL lParam AS LONG) AS LONG DECLARE SUB EZLIB_SetTooltipText(BYVAL lParam AS LONG, TipText$) DECLARE FUNCTION EZLIB_IsTab(BYVAL lParam AS LONG) AS LONG DECLARE FUNCTION EZLIB_TabID(BYVAL lParam AS LONG) AS LONG DECLARE FUNCTION EZLIB_TabNum(BYVAL lParam AS LONG) AS LONG DECLARE SUB EZLIB_AddTabs(BYVAL hDlg AS LONG, BYVAL IDNum&, BYVAL TabText$) DECLARE SUB EZLIB_DefColors() DECLARE SUB EZLIB_DeleteBrushes() DECLARE FUNCTION EZLIB_QBColor(N&) AS LONG DECLARE SUB EZLIB_ShowControl(BYVAL hWnd&, BYVAL ID&, BYVAL SFlag&) ' ************************************************************* ' Application Constants and Declares ' ************************************************************* ' ---------------------------------------------------------- %Form1_FILE = 500 ' ---------------------------------------------------------- %Form1_NEWFILE = 505 %Form1_OPENFILE = 510 %Form1_SAVEFILE = 515 %Form1_SAVEAS = 520 %Form1_SEPARATOR_525 = 525 %Form1_EXIT = 530 ' ---------------------------------------------------------- %Form1_EDIT = 600 ' ---------------------------------------------------------- %Form1_CUT = 605 %Form1_COPY = 610 %Form1_PASTE = 615 ' ---------------------------------------------------------- %Form1_HELP = 700 ' ---------------------------------------------------------- %Form1_HELP1 = 705 ' -------------------------------------------------- DECLARE SUB ShowDialog_Form1(BYVAL hParent&) DECLARE CALLBACK FUNCTION Form1_DLGPROC ' -------------------------------------------------- ' ------------------------------------------------ DECLARE SUB Form1_NEWFILE_Select() DECLARE SUB Form1_OPENFILE_Select() DECLARE SUB Form1_SAVEFILE_Select() DECLARE SUB Form1_SAVEAS_Select() DECLARE SUB Form1_EXIT_Select() DECLARE SUB Form1_CUT_Select() DECLARE SUB Form1_COPY_Select() DECLARE SUB Form1_PASTE_Select() DECLARE SUB Form1_HELP1_Select() ' (1) Put NEXT DIALOG Constant and Declare code after here : ' ************************************************************* ' Application Global Variables and Types ' ************************************************************* GLOBAL App_Brush&() GLOBAL App_Color&() GLOBAL App_Font&() GLOBAL hForm1& ' Dialog handle ' Global Handles for menus GLOBAL hForm1_Menu0& GLOBAL hForm1_Menu1& GLOBAL hForm1_Menu2& GLOBAL hForm1_Menu3& ' (2) Put NEXT DIALOG Globals code after here : ' ************************************************************* ' Application Entrance ' ************************************************************* FUNCTION PBMAIN LOCAL Count& LOCAL CC1 AS INIT_COMMON_CONTROLSEX CC1.dwSize=SIZEOF(CC1) CC1.dwICC=%ICC_WIN95_CLASSES InitCommonControlsEX CC1 EZLIB_DefColors EZLIB_InitFonts ShowDialog_Form1 0 DO DIALOG DOEVENTS TO Count& LOOP UNTIL Count&=0 EZLIB_DeleteBrushes EZLIB_DeleteFonts END FUNCTION ' ************************************************************* ' Application Dialogs ' ************************************************************* SUB ShowDialog_Form1(BYVAL hParent&) LOCAL Style&, ExStyle& LOCAL N&, CT& ' Variables used for Reading Data in Arrays for Listbox and Combobox ' hParent& = 0 if no parent Dialog Style& = %WS_POPUP OR %DS_MODALFRAME OR %WS_CAPTION OR %WS_MINIMIZEBOX OR %WS_SYSMENU OR %DS_CENTER ExStyle& = 0 DIALOG NEW hParent&, "Your Dialog", 0, 0, 267, 177, Style&, ExStyle& TO hForm1& EZLIB_FixSize hForm1&, Style&, 1 ' --------------------------- MENU NEW BAR TO hForm1_Menu0& ' --------------------------- MENU NEW POPUP TO hForm1_Menu1& MENU ADD POPUP, hForm1_Menu0& ,"&File", hForm1_Menu1&, %MF_ENABLED ' - - - - - - - - - - - - - - MENU ADD STRING, hForm1_Menu1&, "&New File", %Form1_NEWFILE, %MF_ENABLED MENU ADD STRING, hForm1_Menu1&, "&Open File", %Form1_OPENFILE, %MF_ENABLED MENU ADD STRING, hForm1_Menu1&, "&Save File", %Form1_SAVEFILE, %MF_ENABLED MENU ADD STRING, hForm1_Menu1&, "Save File &As", %Form1_SAVEAS, %MF_ENABLED MENU ADD STRING, hForm1_Menu1&, "-", %Form1_SEPARATOR_525, %MF_ENABLED MENU ADD STRING, hForm1_Menu1&, "E&xit", %Form1_EXIT, %MF_ENABLED MENU NEW POPUP TO hForm1_Menu2& MENU ADD POPUP, hForm1_Menu0& ,"&Edit", hForm1_Menu2&, %MF_ENABLED ' - - - - - - - - - - - - - - MENU ADD STRING, hForm1_Menu2&, "Cu&t", %Form1_CUT, %MF_ENABLED MENU ADD STRING, hForm1_Menu2&, "&Copy", %Form1_COPY, %MF_ENABLED MENU ADD STRING, hForm1_Menu2&, "&Paste", %Form1_PASTE, %MF_ENABLED MENU NEW POPUP TO hForm1_Menu3& MENU ADD POPUP, hForm1_Menu0& ,"&Help", hForm1_Menu3&, %MF_ENABLED ' - - - - - - - - - - - - - - MENU ADD STRING, hForm1_Menu3&, "&Contents", %Form1_HELP1, %MF_ENABLED MENU ATTACH hForm1_Menu0&, hForm1& DIALOG SHOW MODELESS hForm1& , CALL Form1_DLGPROC END SUB ' ************************************************************* ' Dialog Callback Procedure ' for Form Form1 ' uses Global Handle - hForm1& ' ************************************************************* CALLBACK FUNCTION Form1_DLGPROC SELECT CASE CBMSG ' Common Windows Messages you may want to process ' ----------------------------------------------- CASE %WM_TIMER CASE %WM_HSCROLL CASE %WM_VSCROLL CASE %WM_SIZE CASE %WM_CLOSE CASE %WM_DESTROY CASE %WM_SYSCOMMAND CASE %WM_PAINT ' ----------------------------------------------- CASE %WM_CTLCOLORMSGBOX , %WM_CTLCOLORBTN, %WM_CTLCOLOREDIT,_ %WM_CTLCOLORSTATIC, %WM_CTLCOLORSCROLLBAR, %WM_CTLCOLORLISTBOX ' Control colors SELECT CASE GetDlgCtrlID(CBLPARAM) CASE ELSE FUNCTION=0 END SELECT CASE %WM_NOTIFY IF EZLIB_IsTooltip(CBLPARAM) THEN SELECT CASE EZLIB_TooltipID(CBLPARAM) CASE ELSE END SELECT END IF IF EZLIB_IsTab(CBLPARAM) THEN SELECT CASE EZLIB_TabID(CBLPARAM) CASE ELSE END SELECT END IF CASE %WM_COMMAND ' Process Messages to Controls that have no Callback Function ' and Process Messages to Menu Items SELECT CASE CBCTL CASE %Form1_NEWFILE ' Popup Menu Item Selected Form1_NEWFILE_Select CASE %Form1_OPENFILE ' Popup Menu Item Selected Form1_OPENFILE_Select CASE %Form1_SAVEFILE ' Popup Menu Item Selected Form1_SAVEFILE_Select CASE %Form1_SAVEAS ' Popup Menu Item Selected Form1_SAVEAS_Select CASE %Form1_SEPARATOR_525 ' Popup Menu Item Selected CASE %Form1_EXIT ' Popup Menu Item Selected Form1_EXIT_Select CASE %Form1_CUT ' Popup Menu Item Selected Form1_CUT_Select CASE %Form1_COPY ' Popup Menu Item Selected Form1_COPY_Select CASE %Form1_PASTE ' Popup Menu Item Selected Form1_PASTE_Select CASE %Form1_HELP1 ' Popup Menu Item Selected Form1_HELP1_Select CASE ELSE END SELECT CASE ELSE END SELECT END FUNCTION ' (3) Put NEXT DIALOG Creation / Dialog Procedure code after here : ' ************************************************************* ' EZGUI Freeware Dialog Designer Library ' ' see web site at EZGUI.COM ' ' Copyright (C) 2000, Christopher R. Boss , All Rights Reserved ! ' ' This code was Generated by the EZGUI Freeware Dialog Designer ' and may be used ROYALTY FREE, as long as this Copyright notice ' is kept with the source code. ' The Author also gives you the right to post this code on a ' web site and to distribute it to others. ' ************************************************************* SUB EZLIB_InitFonts() REDIM App_Font(0 TO 5) App_Font(0)=GetStockObject(%SYSTEM_FONT) App_Font(1)=GetStockObject(%SYSTEM_FIXED_FONT) App_Font(2)=GetStockObject(%ANSI_VAR_FONT) App_Font(3)=GetStockObject(%ANSI_FIXED_FONT) App_Font(4)=GetStockObject(%DEFAULT_GUI_FONT) ' MS Sans Serif App_Font(5)=GetStockObject(%OEM_FIXED_FONT) ' Terminal Font END SUB ' ------------------------------------------------------------- SUB EZLIB_DeleteFonts() LOCAL N& ' Fonts 0 to 5 do not need to be deleted FOR N&=6 TO UBOUND(App_Font) IF App_Font(N&)<>0 THEN DeleteObject App_Font(N&) NEXT N& END SUB ' ------------------------------------------------------------- SUB EZLIB_FixSize(BYVAL hDlg&, BYVAL Style&, BYVAL HasMenu&) LOCAL X&, Y&, W&, H&, XX&, YY& DIALOG GET SIZE hDlg& TO X&, Y& IF (Style& AND %WS_CAPTION) = %WS_CAPTION THEN IF HasMenu& THEN H&=H&+GetSystemMetrics(%SM_CYCAPTION) END IF END IF IF (Style& AND %WS_HSCROLL) = %WS_HSCROLL THEN H&=H&+GetSystemMetrics(%SM_CYHSCROLL) END IF IF (Style& AND %WS_VSCROLL) = %WS_VSCROLL THEN W&=W&+GetSystemMetrics(%SM_CYVSCROLL) END IF DIALOG PIXELS hDlg&, W&, H& TO UNITS XX&, YY& X&=X&+XX& Y&=Y&+YY& DIALOG SET SIZE hDlg&, X&, Y& END SUB ' ------------------------------------------------------------- FUNCTION EZLIB_IsTooltip(BYVAL lParam AS LONG) AS LONG LOCAL pNM AS NMHDR PTR pNM=lParam IF @pNM.code=%TTN_NEEDTEXT THEN FUNCTION=1 ELSE FUNCTION=0 END FUNCTION ' ------------------------------------------------------------- FUNCTION EZLIB_TooltipID(BYVAL lParam AS LONG) AS LONG LOCAL pNM AS NMHDR PTR, pTT AS TOOLTIPTEXT PTR LOCAL IDNum&, UF& IDNum&=0 pNM=lParam IF @pNM.code=%TTN_NEEDTEXT THEN ' Check for Tooltip message pTT=lParam UF&[email protected] AND %TTF_IDISHWND IF UF&=%TTF_IDISHWND THEN IDNum&=GetDlgCtrlID(@pTT.hdr.idfrom) ELSE IDNum&[email protected] END IF END IF FUNCTION=IDNum& END FUNCTION ' ------------------------------------------------------------- SUB EZLIB_SetTooltipText(BYVAL lParam AS LONG, TipText$) LOCAL pNM AS NMHDR PTR, pTT AS TOOLTIPTEXT PTR pNM=lParam IF @pNM.code=%TTN_NEEDTEXT THEN ' Check for Tooltip message pTT=lParam IF TipText$<>"" THEN @pTT.szText=LEFT$(TipText$, 79)+CHR$(0) END IF END IF END SUB ' ------------------------------------------------------------- FUNCTION EZLIB_IsTab(BYVAL lParam AS LONG) AS LONG LOCAL pNM AS NMHDR PTR pNM=lParam IF @pNM.code=%TCN_SELCHANGE THEN FUNCTION=1 ELSE FUNCTION=0 END FUNCTION ' ------------------------------------------------------------- FUNCTION EZLIB_TabID(BYVAL lParam AS LONG) AS LONG LOCAL pNM AS NMHDR PTR LOCAL IDNum& pNM=lParam IF @pNM.code=%TCN_SELCHANGE THEN IDNum&[email protected] END IF FUNCTION=IDNum& END FUNCTION ' ------------------------------------------------------------- FUNCTION EZLIB_TabNum(BYVAL lParam AS LONG) AS LONG LOCAL RV&, pNM AS NMHDR PTR LOCAL hCtrl AS LONG pNM=lParam IF @pNM.code=%TCN_SELCHANGE THEN [email protected] RV&=SendMessage(hCtrl, %TCM_GETCURSEL, 0, 0)+1 END IF FUNCTION=RV& END FUNCTION ' ------------------------------------------------------------- SUB EZLIB_AddTabs(BYVAL hDlg AS LONG, BYVAL IDNum&, BYVAL TabText$) LOCAL pItem AS TC_ITEM, hCtrl& LOCAL zText AS ASCIIZ*80 LOCAL D$, P&, TB& IF IDNum&<>0 THEN hCtrl&=GetDlgItem(hDlg,IDNum&) IF hCtrl&<>0 THEN TB&=0 DO IF TabText$="" THEN EXIT DO P&=INSTR(TabText$,"|") IF P&>0 THEN D$=LEFT$(TabText$,P&-1) TabText$=MID$(TabText$,P&+1) ELSE D$=TabText$ IF TabText$="" THEN EXIT DO TabText$="" END IF pItem.Mask=%TCIF_TEXT zText=D$+CHR$(0) pItem.pszText=VARPTR(zText) SendMessage hCtrl&, %TCM_INSERTITEM, TB&, VARPTR(pItem) TB&=TB&+1 LOOP END IF END IF END SUB ' ------------------------------------------------------------- SUB EZLIB_DefColors() LOCAL T& REDIM App_Brush&(0 TO 31) REDIM App_Color&(0 TO 31) FOR T&=0 TO 31 App_Brush&(T&)=CreateSolidBrush(EZLIB_QBColor(T&)) App_Color&(T&)=EZLIB_QBColor(T&) NEXT T& END SUB ' ------------------------------------------------------------- SUB EZLIB_DeleteBrushes() LOCAL T& FOR T&=0 TO 31 DeleteObject App_Brush&(T&) NEXT T& END SUB ' ------------------------------------------------------------- FUNCTION EZLIB_QBColor(N&) AS LONG LOCAL RV& SELECT CASE N& CASE 0 RV&=RGB(0,0,0) ' Black CASE 1 RV&=RGB(0,0,128) ' Blue CASE 2 RV&=RGB(0,128,0) ' Green CASE 3 RV&=RGB(0,128,128) ' Cyan CASE 4 RV&=RGB(196,0,0) ' Red CASE 5 RV&=RGB(128,0,128) ' Magenta (Purple) CASE 6 RV&=RGB(128,64,0) ' Brown CASE 7 RV&=RGB(196,196,196) ' White CASE 8 RV&=RGB(128,128,128) ' Gray CASE 9 RV&=RGB(0,0, 255) ' Lt. Blue CASE 10 RV&=RGB(0,255,0) ' Lt. Green CASE 11 RV&=RGB(0,255,255) ' Lt. Cyan CASE 12 RV&=RGB(255,0,0) ' Lt. Red CASE 13 RV&=RGB(255,0,255) ' Lt. magenta (Purple) CASE 14 RV&=RGB(255,255,0) ' Yellow CASE 15 RV&=RGB(255,255,255) ' Bright White CASE 16 ' - Extended QB colors Pastel version - RV&=RGB(164,164,164) CASE 17 RV&=RGB(128,160,255) CASE 18 RV&=RGB(160,255,160) CASE 19 RV&=RGB(160,255,255) CASE 20 RV&=RGB(255,160,160) CASE 21 RV&=RGB(255,160,255) CASE 22 RV&=RGB(255,255,160) CASE 23 RV&=RGB(212,212,212) CASE 24 RV&=RGB(180,180,180) CASE 25 RV&=RGB(188,220,255) CASE 26 RV&= RGB(220,255,220) CASE 27 RV&=RGB(220,255,255) CASE 28 RV&=RGB(255,220,220) CASE 29 RV&=RGB(255,220,255) CASE 30 RV&=RGB(255,255,220) CASE 31 RV&=RGB(228,228,228) CASE ELSE RV&=RGB(0,0,0) END SELECT FUNCTION=RV& END FUNCTION ' ------------------------------------------------------------- SUB EZLIB_ShowControl(BYVAL hWnd&, BYVAL ID&, BYVAL SFlag&) LOCAL hCtrl& IF IsWindow(hWnd&) THEN IF ID&<>0 THEN hCtrl&=GetDlgItem(hWnd&,ID&) IF SFlag&=0 THEN ShowWindow hCtrl&, %SW_HIDE ELSE ShowWindow hCtrl&, %SW_SHOW END IF END IF END IF END SUB ' ------------------------------------------------------------- ' ************************************************************* ' End of EZGUI Dynamic Dialogs Library ' ************************************************************* ' ************************************************************* ' Application Callback Functions (or Procedures) for Controls ' ************************************************************* ' ------------------------------------------------ SUB Form1_NEWFILE_Select() END SUB ' ------------------------------------------------ ' ------------------------------------------------ SUB Form1_OPENFILE_Select() END SUB ' ------------------------------------------------ ' ------------------------------------------------ SUB Form1_SAVEFILE_Select() END SUB ' ------------------------------------------------ ' ------------------------------------------------ SUB Form1_SAVEAS_Select() END SUB ' ------------------------------------------------ ' ------------------------------------------------ SUB Form1_EXIT_Select() END SUB ' ------------------------------------------------ ' ------------------------------------------------ SUB Form1_CUT_Select() END SUB ' ------------------------------------------------ ' ------------------------------------------------ SUB Form1_COPY_Select() END SUB ' ------------------------------------------------ ' ------------------------------------------------ SUB Form1_PASTE_Select() END SUB ' ------------------------------------------------ ' ------------------------------------------------ SUB Form1_HELP1_Select() END SUB ' ------------------------------------------------ ' (4) Put NEXT DIALOG Callback / Subs code after here : ' ************************************************************* ' Put Your Code Here ' *************************************************************
------------------
-Greg
Leave a comment:
-
Guest repliedJoe,
What type of programming are you using, API or DDT.
From what your describing, your wanting to add a
pull-down menu in DDT.
See the address.bas in the ddt sub-directory under
samples. Should find what your LOOKING for!!!
Also, the other examples show how to add menus by
using RESOURCE files and manually using the API method.
Cecil
------------------
Leave a comment:
-
FILE MENU
where do I find how to do file nenus or what is it called I would like
to add a drop down file menu to my dialog box. thanks
Joe
------------------
Tags: None
Leave a comment: