Announcement

Collapse
No announcement yet.

FILE MENU

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    ------------------

  • #2
    Joe,

    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

    ------------------

    Comment


    • #3
      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
      -Greg
      [email protected]
      MCP,MCSA,MCSE,MCSD

      Comment


      • #4
        Let's not forget FreeDDT on my site..


        ------------------
        [email protected]
        hellobasic

        Comment

        Working...
        X