DEFINE MENU (Comando)

Crea una barra de menús.

DEFINE MENU MenuBarName [BAR [AT LINE nRow]]
   [IN [WINDOW] WindowName | IN SCREEN] [FONT cFontName [, nFontSize]]
   [STYLE cFontStyle] [KEY KeyLabel] [MARK cMarkCharacter]
   [MESSAGE cMessageText] [NOMARGIN] 
   [COLOR SCHEME nSchemeNumber | COLOR ColorPairList]

Parámetros

  • MenuBarName
    Especifica el nombre de la barra de menús que quiere crear. Este nombre de barra de menús le permite hacer referencia a la barra de menús desde otros comandos y funciones.

  • BAR [AT LINE nRow]
    Crea una barra de menús que se comporta como la barra de menús del sistema de Visual FoxPro. La barra de menús tiene estas características:

    • Se dibuja una barra de menú horizontal de una línea de alto a lo ancho de la ventana principal de Visual FoxPro o de la ventana definida por el usuario donde esté incluida.
    • La colocación de los títulos de menú se realiza automáticamente.
    • Si el tamaño o el número de títulos que define excede el tamaño de la pantalla o de una ventana en la que se sitúa la barra de menús, la barra de menús se desplazará.

    El número de fila se especifica con nRow.

  • IN [WINDOW] WindowName
    Sitúa una barra de menús en una ventana definida por el usuario. Especifique el nombre de la ventana en la que quiere situar la barra de menús mediante WindowName. Si omite IN WINDOW, la barra de menú se situará de forma predeterminada en la ventana principal de Visual FoxPro, a menos que haya una ventana activa definida por el usuario. Si está activa una ventana definida por el usuario, la barra de menú se situará en la ventana activa. Esta cláusula sólo la admiten los formularios de nivel superior, que pueden establecerse con ShowWindow=2 o Desktop=.T.

  • IN SCREEN
    Sitúa explícitamente la barra de menús en la ventana principal de Visual FoxPro.

  • FONT cFontName [, nFontSize]
    Especifica una fuente predeterminada para todos los títulos de menú de la barra de menús. Puede anular la fuente predeterminada para un título de menú individual si incluye la cláusula FONT en DEFINE PAD.

    cFontName especifica el nombre de la fuente y nFontSize especifica el tamaño de la fuente en puntos. Por ejemplo, el comando siguiente crea una barra de menús con títulos en la fuente Courier de 12 puntos:

    DEFINE MENU mnuExample FONT 'Courier', 12
    

    Si la fuente especificada no está disponible, se sustituirá por una fuente de características similares. Si incluye la cláusula FONT pero omite el tamaño en puntos nFontSize, se usará una fuente de 10 puntos.

    Se ignora la cláusula FONT para títulos de menú agregados al menú de sistema de Visual FoxPro _MSYSMENU. Observe que el Diseñador de menús utiliza el menú de sistema de Visual FoxPro.

  • STYLE cFontStyle
    Especifica un estilo de fuente predeterminado para todos los títulos de menú de la barra de menús. Puede anular el estilo predeterminado para títulos de menú individuales si incluye la cláusula STYLE en DEFINE PAD.

    Si omite la cláusula STYLE o si el estilo de fuente especificado no está disponible, se utiliza el estilo de fuente Normal.

    Éstos son los estilos de fuente que puede especificar con cFontStyle:

    Character Estilo de la fuente
    B Negrita
    I Cursiva
    N Normal
    Q Opaco
    - Tachado
    T Transparente
    U Subrayado

    Puede incluir más de un carácter para especificar una combinación de estilos de fuente. Por ejemplo, el comando siguiente especifica Negrita Cursiva:

    DEFINE MENU mnuExample STYLE 'BI'
    

    La cláusula STYLE se pasa por alto para los títulos de menú agregados al menú del sistema de Visual FoxPro _MSYSMENU. El Diseñador de menús utiliza el menú de sistema de Visual FoxPro.

  • KEY KeyLabel
    Especifica la tecla o combinación de teclas utilizada para activar la barra de menús. Para obtener una lista de las teclas y combinaciones de teclas disponibles y sus nombres de etiqueta, vea ON KEY LABEL.

    La inclusión de la cláusula KEY equivale a ejecutar el comando siguiente:

    ON KEY LABEL KeyLabel ACTIVATE MENU MenuName
    

    Nota   Si ya está definida una macro de teclado con la misma etiqueta de tecla, la macro de teclado tendrá prioridad y la barra de menús no podrá activarse con la tecla o combinación de teclas especificada.

  • MARK cMarkCharacter
    Especifica un carácter de marca que aparece a la izquierda de los títulos de menú en la barra de menús. MARK se puede incluir para cambiar el carácter de marca predeterminado por el especificado con cMarkCharacter. Si cMarkCharacter incluye más de un carácter, sólo se utilizará el primer carácter como carácter de marca.

    El carácter de marca predeterminado es una marca de verificación. La cláusula MARK se pasa por alto y se utiliza el carácter de marca predeterminado en caso de que la barra de menús sea el menú de sistema de Visual FoxPro. Además, la cláusula MARK también se pasa por alto si FoxFont no es la fuente de la ventana principal de Visual FoxPro o de la ventana definida por el usuario en la que está incluida la barra de menús.

    Nota   Al especificar un carácter de marca no se marcan los nombres de menú de una barra de menús. Utilice SET MARK OF para marcar los títulos de menú de una barra de menús con el carácter especificado.

    Los caracteres de marca especificados con DEFINE PAD tienen prioridad sobre los caracteres de marca especificados con la cláusula MARK en DEFINE MENU. SET MARK OF se utiliza para desactivar o activar los caracteres de marca y también puede utilizarse para especificar un carácter de marca para un elemento de menú individual o para todos los elementos del menú.

  • MESSAGE cMessageText
    Muestra un mensaje cuando se selecciona un título de menú. El mensaje se incluye en la barra gráfica de estado. Si la barra gráfica de estado se ha desactivado con SET STATUS BAR OFF, el mensaje se centrará en la última línea de la ventana principal de Visual FoxPro.

  • NOMARGIN
    Borra los espacios que se colocan a la derecha y a la izquierda de cada nombre de menú de forma predeterminada.

  • COLOR SCHEME nSchemeNumber
    Especifica los colores de una barra de menús individual.

  • COLOR ColorPairList
    Especifica los colores de una barra de menús individual. De forma predeterminada, los colores de los elementos de menú están determinados por el esquema número 2 del conjunto de colores actual.

    Para obtener más información acerca de los esquemas y las parejas de colores, vea Introducción a los colores.

Observaciones

Utilice DEFINE MENU para crear la barra de menús para el sistema de menús de su aplicación. Utilice DEFINE PAD para crear los títulos de menús de la barra de menús. Utilice ON PAD ... ACTIVATE para especificar qué menú se va a mostrar bajo cada título de menú. Utilice DEFINE POPUP para crear los menús debajo de cada título de menú. Utilice ACTIVATE MENU para activar todo el sistema de menús.

Si utiliza el Diseñador de menús para crear un menú, quizá no necesite usar estos comandos. El Diseñador de menús crea automáticamente los comandos para su menú. Este diseñador usa el menú del sistema de Visual FoxPro, que se puede modificar si se agregan los propios elementos de menú.

Para obtener más información acerca de la creación de menús, vea Crear un sistema de menús.

Ejemplo

El ejemplo siguiente usa DEFINE MENU para crear un sistema de menús definido por el usuario. Primero se guarda en memoria la barra actual de menús del sistema mediante SET SYSMENU SAVE y, después, se borran los títulos de los menús con SET SYSMENU TO.

DEFINE MENU crea la barra de menús y se crean dos títulos de menú con DEFINE PAD. DEFINE POPUP crea un menú para cada título. DEFINE BAR crea elementos en cada uno de los menús. Cuando se elige un título de menú, ON PAD utiliza ACTIVATE POPUP para activar el menú correspondiente. ACTIVATE MENU muestra y activa la barra de menús.

Cuando se elige un elemento de un menú, se ejecuta el procedimiento CHOICE. CHOICE muestra el nombre del elemento elegido y el nombre del menú donde está incluido.

** Name this program DEFIMENU.PRG ** CLEAR SET SYSMENU SAVE SET SYSMENU TO ON KEY LABEL ESC KEYBOARD CHR(13) DEFINE MENU example BAR AT LINE 1 DEFINE PAD convpad OF example PROMPT '<Conversions' COLOR SCHEME 3 ; KEY ALT+C, '' DEFINE PAD cardpad OF example PROMPT 'Card <Info' COLOR SCHEME 3 ; KEY ALT+I, '' ON PAD convpad OF example ACTIVATE POPUP conversion ON PAD cardpad OF example ACTIVATE POPUP cardinfo DEFINE POPUP conversion MARGIN RELATIVE COLOR SCHEME 4 DEFINE BAR 1 OF conversion PROMPT 'Ar<ea' ; KEY CTRL+E, '^E' DEFINE BAR 2 OF conversion PROMPT '<Length' ; KEY CTRL+L, '^L' DEFINE BAR 3 OF conversion PROMPT 'Ma<ss' ; KEY CTRL+S, '^S' DEFINE BAR 4 OF conversion PROMPT 'Spee<d' ; KEY CTRL+D, '^D' DEFINE BAR 5 OF conversion PROMPT '<Temperature' ; KEY CTRL+T, '^T' DEFINE BAR 6 OF conversion PROMPT 'T<ime' ; KEY CTRL+I, '^I' DEFINE BAR 7 OF conversion PROMPT 'Volu<me' ; KEY CTRL+M, '^M' ON SELECTION POPUP conversion DO choice IN defimenu WITH PROMPT( ), POPUP( ) DEFINE POPUP cardinfo MARGIN RELATIVE COLOR SCHEME 4 DEFINE BAR 1 OF cardinfo PROMPT '<View Charges' ; KEY ALT+V, '' DEFINE BAR 2 OF cardinfo PROMPT 'View <Payments' ; KEY ALT+P, '' DEFINE BAR 3 OF cardinfo PROMPT 'Vie<w Users' ; KEY ALT+W, '' DEFINE BAR 4 OF cardinfo PROMPT '-' DEFINE BAR 5 OF cardinfo PROMPT '<Charges ' ON SELECTION POPUP cardinfo; DO choice IN defimenu WITH PROMPT( ), POPUP( )

ACTIVATE MENU example
DEACTIVATE MENU example
RELEASE MENU example EXTENDED
SET SYSMENU TO DEFAULT
ON KEY LABEL ESC
PROCEDURE choice
PARAMETERS mprompt, mpopup
WAIT WINDOW 'You chose ' + mprompt + ;
    ' from popup ' + mpopup NOWAIT

Vea también

ACTIVATE MENU | CNTPAD( ) | CREATE MENU | DEACTIVATE MENU | DEFINE PAD | GETPAD( ) | HIDE MENU | MRKPAD( ) | ON PAD | ON SELECTION PAD | PRMPAD( ) | RELEASE MENUS | RELEASE PAD | SET MARK OF | SET SYSMENU | SHOW MENU