Sie sind auf Seite 1von 10

EL EDITOR DE MENUS El Men o Barra de Men es la segunda lnea de cualquier ventana Windows, donde pueden verse distintos nombres.

La Barra de Men es un componente de un Formulario.

La Barra de Men puede tener tantas palabras como se desee, y sobre cada palabra, puede desplegarse un Men desplegable con mas palabras. Sobre cada una de estas puede a su vez desplegarse otro conjunto de palabras, etc. con lo que se puede conseguir una cantidad de palabras tan grande como necesitemos.

Para cada palabra se produce el evento click. Cada palabra de la Barra de Men lleva anexo un nico procedimiento, que se ejecutar al hacer click sobre la palabra. Pero en las palabras que sirven para desplegar un men no tiene sentido que se ponga ningn cdigo en su procedimiento, ya que estn ah justamente para desplegar otras palabras. Ser en las palabras finales donde se colocar el cdigo correspondiente.

En las figuras anteriores pueden verse tres formas distintas de ver el mismo Men. En la primera figura el Men est sin desplegar. En la segunda figura puede verse un rbol de Men largo, desplegado en su totalidad. En la tercera puede verse el Men desplegable de la palabra Archivo de la Barra de Men. Puede apreciarse en este men desplegable una lnea que separa las palabras Guardar Como y SALIR. Esta lnea separadora es muy prctica para separar dos temas distintos dentro de un Men desplegable. Tan distintos como las operaciones de Abrir y Guardar respecto a la ltima orden del men desplegable que es SALIR de la aplicacin.

Para crear un men debe usarse el Editor de Men, que se encuentra en la Barra de Men de VB en Herramientas | Editor de mens. Le aparecer el siguiente cuadro. (En principio vaco)

Cada palabra del men tiene su Caption (La palabra que aparece en el men), su Name (Nombre), y puede tener Index (si existen varias palabras con el mismo Name). Para introducir estas propiedades basta con teclearlas directamente en cada una de las casillas al efecto del cuadro del editor de mens. Para colocar el cursor de escritura en una u otra casilla, puede hacerse bien con el cursor del ratn, bien con el tabulador. Para pasar a la siguiente lnea de edicin (crear una nueva palabra), basta con pulsar ENTER.

Existen otras propiedades aparte del Caption y Name que se introducen directamente en las casillas al efecto.

HelpContextID Igual que esta propiedad en el resto de los controles, permite introducir un nmero de contexto para la ayuda de Windows.

Enabled. Habilitado. Si se quita la marca de esa casilla, esa palabra aparecer por defecto deshabilitada. Esta propiedad puede leerse y cambiarse en tiempo de ejecucin, por lo que esta propiedad puede usarse para deshabilitar ciertas funciones de la aplicacin, dependiendo de la evolucin de la propia aplicacin. La presentacin en el men cuando est deshabilitada es con color plido.

Visible. Como su nombre indica, que sea visible o no lo sea. Puede cambiarse en tiempo de ejecucin.

WindowList Indica si esa palabra es la que va a mostrar todos los formularios abiertos en una aplicacin de documentos mltiples (MDI). Al hacer click sobre esta palabra, se desplegar un submen con todos los Caption de los Formularios hijo abiertos en ese momento. Solamente puede existir una palabra en un men con esta propiedad activada. Esta propiedad no puede variarse en tiempo de ejecucin.

Para cambiar una de estas propiedades en tiempo de ejecucin, basta con citar por su nombre a esa palabra (por su Name, no por su Caption), e igualar a True o False su valor :

nmuDocumentos.Visible = False

El nombre usado para nombrar a una de las palabras del men puede ser cualquiera. Sin embargo es prudente usar un nombre que nos pueda identificar, por una parte, que ese nombre corresponde a una de las palabras del men, y por otra, a que palabra se refiere. La solucin puede ser cualquiera. El autor de estos apuntes propone poner las letras mnu (o menu - recomiendo no usar acentos e los Names de VB), seguido del Caption de esa palabra.

Otras propiedades

Shortcut Atajo. Esta propiedad admite varias combinaciones de teclas para acceder al procedimiento click de esa palabra sin necesidad de usar el ratn. Las combinaciones de teclas posibles se muestran haciendo click en la flecha hacia abajo que tiene esa casilla. Se desplegar una lista con todas ellas. Para elegir una de estas combinaciones, basta con hacer click sobre la lnea que la contiene. Esta combinacin de teclas aparecer en el men, al lado de la palabra (Vase figura siguiente, SALIR Ctrl + X)

NegotiatePosition. Establece un valor que determina si los controles Menu de nivel superior se muestran en la barra de mens mientras un objeto vinculado o incrustado de un formulario est activo y mostrando sus mens. No est disponible en tiempo de ejecucin. Puede tener los valores 0 (Predeterminado) Ninguno. El men no se muestra en la barra de mens cuando el objeto est activo. 1 Izquierda. El men se muestra a la izquierda de la barra de mens cuando el objeto est activo. 2 Medio. El men se muestra en medio de la barra de mens cuando el objeto est activo. 3 Derecha. El men se muestra a la derecha de la barra de mens cuando el objeto est activo.

El men editado con los datos de la figura anterior tendr esta forma en tiempo de ejecucin :

Observe que tiene cuatro palabras en la lnea superior, y que colgando de la primera aparece un men desplegable. Para conseguir un men desplegable fjese en la figura del Editor, en la parte de abajo donde estn todos los Caption de las palabras del men. Observar que algunas de ellas (&Edicion, Documentos, Ayuda - Hay otra que no se v, &Archivo) estn completamente a la izquierda de la ventana, y las dems estn separadas de la parte izquierda por unos guiones. Las palabras que estn completamente a la izquierda son las que figurarn en la barra de men de forma permanente. Las que estn separadas (tabuladas) corresponden a las que aparecern en los mens desplegables. Como es lgico, un men desplegable debe colgar de una palabra de las de la barra de men. La palabra de la que cuelga el submen es la palabra sin tabular inmediatamente anterior.

Para tabular las palabras, hay que hacer click en el botn en forma de flecha a la derecha que est sobre la ventana de edicin :

Situandonos sobre una de las lneas ya editadas, y haciendo click sobre el botn con flecha hacia la izquierda, quitamos la tabulacin.

Los botones con flecha hacia arriba o abajo nos permiten variar el orden de las lneas ya editadas.

Podemos hacer varios niveles de submens a base de introducir varias tabulaciones. Al comienzo de este captulo puede ver un ejemplo de ello.

Quedan un par de cosas. Una de ellas es el carcter & que est delante de los Caption de Archivo y Edicin. Este carcter nos permite acceder al procedimiento click de esa palabra pulsando la tecla Alt + la tecla correspondiente a la letra que est detrs del carcter &. Justamente la letra que est subrayada en la palabra del men.

El carcter & no tiene porqu ir precisamente al comienzo de la palabra. Puede ir en el medio de la palabra. De esta forma se subrayar una letra intermedia.

Otra cosa. Puede verse en el men desplegado de la figura anterior una lnea entre Guardar Como y SALIR. Esta lnea, que solamente tiene efectos estticos, se logra introduciendo como Caption un guin ( - ). El editor de mens solamente le permite el guin en una palabra de men desplegable (Tabulada). No se olvide de poner el Name incluso para este guin.

NOTA MUY IMPORTANTE

Siempre se recomienda poner la orden de SALIR en la primera palabra de la barra de Men. Bien que esa primera palabra sea Salir o que est en el men desplegable de la primera palabra de la Barra de Men, en este ltimo caso, separada mediante una lnea separadora. (Vea The Windows Interface Guidelines for Software Design, pg.124)

POPUP MENS

Un PopUpMen o Men Emergente es un men que despliega en cualquier punto de un Formulario (MDI o normal) con varias opciones. Es normal en los procesadores de texto que se obtenga un men emergente pulsando el botn derecho del ratn, donde aparecen las tres palabras mgicas de Copiar, Cortar y Pegar.

Para crear un men emergente o PopUpMenu es necesario tener en el men de ese formulario una palabra de la que se despliegue un submen con las mismas palabras que queremos que aparezcan en el PopUpMenu.

Por ejemplo, en el men que hemos editado como ejemplo anteriormente, exista una palabra Edicin, de la que se desplegaba el Submen Copiar, Cortar y Pegar. Si analizamos la edicin realizada, las palabras tenan el siguiente Caption y Name :

Caption

Name

Tabulada

Edicin Copiar Cortar Pegar

mnuEdicion NO mnuCopiar SI mnuCortar SI mnuPegar SI

Recuerde que las palabras del men que estaban tabuladas son las que aparecan en el men desplegable. Esas mismas sern las que aparezcan en el PopUpMenu.

Para ello utilizaremos el Mtodo PopupMenu. Este mtodo pesenta un men emergente en un objeto MDIForm o Form en la posicin actual del mouse o en las coordenadas especificadas.

La sintaxis de este mtodo es la siguiente :

NombreFormulario.PopupMenu nombremen, indics, x, y, negrita

Donde NombreFormulario es el nombre del formulario donde presentamos el PopUpMenu. Puede omitirse.

Nombremen. Este parmetro es requerido. Es el Name de la palabra del men de donde cuelga el men desplegable. La palabra del men a que se refiere Nombremen debe tener al menos un submen.

Indics. Parmetro opcional. Un valor o constante que especifica la posicin y el comportamiento del men emergente, como se describe a continuacin :

Constante (posicin) Valor Descripcin

vbPopupMenuLeftAlign izquierdo del men se

(Predeterminado)

El

lado

sita en x. vbPopupMenuCenterAlign x. vbPopupMenuRightAlign sita en x. 8 El lado derecho del men se 4 El men emergente se centra en

Constante (comportamiento) Valor Descripcin

vbPopupMenuLeftButton elementos del

(Predeterminado)

Los

men reaccionan a los

emergente

slo

clic del mouse cuando se use el botn primario del mouse. vbPopupMenuRightButton emergente 2 Los elementos del men

reaccionan a los clic del mouse cuando se usen los botones primario o secundario.

Para combinar la los valores de indics de posicin y comportamiento basta con sumar los valores.

Nota El parmetro indics no tiene efecto en las aplicaciones que se ejecuten bajo Microsoft Windows versin 3.0 o anteriores.

X, y Parmetro(s) opcionales que especifican las coordenadas x e y donde va a aparecer el men emergente. Si no se especifican, aparecer donde est el puntero del mouse. Las unidades de medida de las coordenadas x e y se definen mediante la propiedad ScaleMode.

negrita. Parmetro opcional que especifica el nombre de un control men del men emergente para presentar su ttulo en negrita. Si se omite, ningn control del men aparece en negrita.

Nota. Este argumento funciona solamente en las aplicaciones que se ejecuten bajo Windows 95. La aplicacin ignora este argumento cuando se ejecute bajo versiones de 16 bits de Windows o Windows NT 3.51 y anteriores.

La forma mas habitual de presentar un men emergente es mediante el botn derecho del ratn. Concretamente en el editor Word que estoy utilizando para escribir estos apuntes ocurre cuando se levanta el botn derecho del ratn. Es decir, en el evento MouseUp, con la condicin de que Button=2. Imaginemos que queremos presentar en un men emergente las palabras Cortar, Copiar y Pegar del ejemplo anterior, que colgaban en el men de la palabra Edicin. (Vea mas atrs). Queremos tambin que la palabra Copiar salga resaltada en negrita. Iramos al procedimiento MouseUp del Formulario y escribiramos :

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu mnuEdicion, , , , mnuCopiar End If End Sub

Observe que se ha omitido el nombre del Formulario (Opcional), el parmetro indics, y las coordenadas x e y (el men emergente aparecer donde est situado el cursor del ratn). Observe tambin que las comas separadoras de los parmetros hay que colocarlas.

Cuando se presenta un men emergente, el cdigo que sigue a la llamada al mtodo PopupMenu no se ejecuta hasta que el usuario elige un comando del men (en cuyo caso se ejecuta antes el cdigo del procedimiento de evento Click) o cancela el men. Adems, slo puede presentarse un men emergente al mismo tiempo; por lo tanto, las llamadas a este mtodo se ignoran si el men emergente est presentado actualmente o si un men desplegable est abierto.

Si queremos presentar un men emergente es necesario tener ese men en el men del formulario. El problema puede ser que no queramos que est en la barra de men. No es problema. Ponga la propiedad Visible del elemento del men desde el que se va a desplegar el submen a False. No se ver ya en la barra de men ni esa palabra ni el submen que de ella se despliega. Eso s, las palabras del submen deben tener la propiedad Visible = True. Si les pone esa propiedad a False, no se vern en el men emergente. Puede aprovechar esta circunstancia para hacer mens emergentes con mas o menos elementos, segn las necesidades de su aplicacin. Tambin puede poner la propiedad Enabled a False si as lo precisa. No puede activar la propiedad WindowList en un elemento que forma parte de un men emergente

Das könnte Ihnen auch gefallen