En VB, el formulario MDI (MultipleDocumentInterface, programa de ventanas múltiples) se define así: "El formulario MDI sirve como ventana de fondo de un programa y contiene un formulario con el atributo MDIChild establecido en Verdadero". En un programa VB, puede haber como máximo un formulario principal MDI y puede haber varios formularios secundarios MDI. El método para crear un formulario principal MDI es seleccionar "NuevoMDIForm" en el menú Archivo de VB.
Cuando el programa MDI se está ejecutando, si la ventana secundaria tiene un menú, cuando se activa la ventana secundaria, el menú de la ventana secundaria reemplazará automáticamente el menú de la ventana principal; cuando la ventana secundaria se minimice, la ventana secundaria aparecerá en el MDI; icono de ventana principal.
La aparición de la interfaz gráfica universal de Windows permite a los usuarios de computadoras utilizar varios programas de Windows fácilmente sin un aprendizaje especial, y no solo es un estándar que los diseñadores de programas deben seguir al diseñar la interfaz de los programas de Windows. diseñadores de programas, lo que les permite centrarse en la resolución e implementación de problemas.
La aparición de Visual Basic ha simplificado aún más el diseño de las interfaces de los programas de Windows. Sólo se necesita una cantidad muy pequeña de código para implementar la interfaz de las aplicaciones estándar de Windows. Sin embargo, si no comprende los principios del diseño de la interfaz de programas de Windows, o no está familiarizado con las habilidades de programación de interfaces en VB, será difícil diseñar e implementar una interfaz que cumpla con los estándares generales y sea única. Principios del diseño de interfaces El diseño de interfaces tiene principios generales, los más importantes son:
La interfaz debe ser coherente. El principio de coherencia es el más fácil de violar en el diseño de interfaces y también el más fácil de modificar y evitar. Por ejemplo, se debe utilizar la misma terminología en los menús y los cuadros de diálogo de ayuda en línea deben tener el mismo estilo.
Debería haber atajos para operaciones comunes. Las operaciones comunes se utilizan con frecuencia y se debe reducir la duración de la secuencia de operaciones. Por ejemplo, configure teclas de método abreviado para operaciones de archivos comunes, como abrir, guardar y guardar como. Proporcionar accesos directos para operaciones comunes no solo mejorará la eficiencia del trabajo del usuario, sino que también hará que la interfaz sea simple y eficiente en la implementación funcional.
Proporcione un manejo de errores simple. El sistema debe tener capacidades de manejo de errores. El sistema debería poder detectar errores cuando ocurran y proporcionar capacidades de manejo de errores simples y comprensibles. El estado del sistema no cambia después de que ocurre un error, o el sistema necesita proporcionar orientación para la recuperación de errores.
Proporcionar retroalimentación de información. Debe haber retroalimentación de información para operaciones importantes del operador. No se requiere retroalimentación sobre operaciones simples y de uso común, pero para operaciones cruciales y de uso poco frecuente, el sistema debe proporcionar retroalimentación de información.
La operación es reversible. La operación debe ser reversible. Esto es útil para operadores sin conocimientos especializados. Una acción reversible puede ser una operación única o una secuencia de operaciones relativamente independiente.
Ayuda en línea bien diseñada. Aunque la ayuda en línea no es esencial para los usuarios expertos, desempeña un papel muy importante para la mayoría de los usuarios no cualificados.
Principios de diseño y programación de menús.
El diseño del menú tiene los siguientes principios generales:
Organiza los menús según las funciones del sistema.
Elija un árbol de menús amplio y poco profundo en lugar de uno angosto y profundo.
Agrupa las opciones del menú según su significado y ordénalas según ciertas reglas. Los títulos de las opciones del menú deben ser breves, claros y preferiblemente comenzar con una palabra clave.
Es necesario configurar teclas de acceso directo para las opciones utilizadas con frecuencia. Combinando los principios anteriores, la programación de menús tiene las siguientes tecnologías y técnicas:
Agrupación de opciones de menú.
En VB, la agrupación de opciones del menú se logra dividiendo la barra de menú con líneas horizontales. Agregue un elemento de menú con un atributo de título de "" en una posición determinada del menú y aparecerá como una línea horizontal en el menú. En muchos casos, el mismo menú de funciones se puede dividir en varios grupos según las funciones de las opciones del menú. En este caso, se pueden utilizar líneas horizontales divisorias para agrupar los elementos del menú.
Configuración de teclas de método abreviado para opciones comunes
Abra la ventana de diseño del menú (MenuDesignWindow). Debe haber una lista de teclas de acceso directo (Acceso directo) correspondiente para cada opción del menú. Cabe señalar que las teclas de acceso directo para menús con submenús o menús de nivel superior no se pueden definir de esta manera. De acuerdo con los principios de diseño de la interfaz de Windows, la tecla de acceso directo para el menú superior tiene la forma de la tecla Alt. Su método de implementación se describirá más adelante.
Para algunos elementos del menú de funciones de uso común, existen teclas de acceso directo convencionales. Por ejemplo, utilice CTRL O para abrir un archivo, CRTL S para guardar un archivo, CTRL P para imprimir, etc.
Después de definir una tecla de acceso directo para una opción del menú, aparece una representación de texto de la tecla de acceso directo detrás de la opción en el menú.
Habilitar y deshabilitar opciones de menú visibles y ocultas Para expresar algunas funciones especiales de las opciones de menú, se pueden usar los atributos de habilitar y deshabilitar, visibles y ocultos de las opciones de menú. Cuando la función representada por una opción no se puede realizar por algún motivo, se debe prohibir la selección de la opción. Las opciones del menú se habilitan y deshabilitan cambiando el atributo Habilitado de la opción. Por ejemplo, suponiendo que la opción del menú se llame nmuName, deshabilitar esta opción se puede implementar de la siguiente manera:
mnuName.Enabled=Falso
De la misma manera, puedes ocultar una opción usando
mnuName.Visible=Falso
Para lograr esto, para volver a hacer visible una opción oculta, use
mnuName.Visible=Verdadero
lograr.
Ocultar y restaurar la visibilidad de los elementos del menú se utiliza a menudo en la implementación de menús dinámicos.
Carga dinámica de elementos del menú.
La carga dinámica de elementos del menú significa que la cantidad de elementos del menú no es fija y se puede cargar dinámicamente cuando sea necesario. El ejemplo más simple es la lista de archivos abiertos recientemente en el menú Archivo. Antes de abrir un archivo por primera vez, la lista está vacía y no aparece en el menú de archivo; después de abrir un archivo, la lista ya no está vacía y el elemento de menú que representa el archivo abierto aparece en el menú de archivo.
En el ejemplo anterior, el atributo de subíndice (Índice), el atributo de título (Caption), el atributo visible (Visible) del elemento del menú y el método de carga (LoadMethod) del elemento del menú se utilizan de manera integral.
El proceso de implementación específico es el siguiente:
Agregue un elemento de menú al menú de archivos con un título arbitrario y suponga que el atributo Nombre del elemento de menú es open_files_list;
Cambie el atributo visible del elemento del menú open_files_list para que open_files_list.Visible=False
Cambie el atributo de subíndice del elemento del menú open_files_list para que
archivos_abiertos_lista_archivos.Index=0
Controle la carga dinámica del elemento del menú open_files_list en el programa.
Suponga que desea mostrar el nombre del segundo archivo que se ha abierto y que el nombre del archivo está almacenado en una matriz de nombres de archivo nombre_archivo_abierto. El siguiente código implementa esta función:
Cargar lista_archivos_abiertos(1)
archivos_abiertos_lise(1).Caption="&2" nombre_archivo_abierto(1)
lista_archivos_abiertos(1).Visible=Verdadero
Cabe señalar que el método Load no se puede utilizar para elementos de menú cuyo subíndice sea 0. Debido a que el elemento del menú se ha cargado en la memoria cuando se ejecuta el programa, el carácter "&" en el carácter del atributo del título del elemento del menú tiene un significado especial y su función es mostrar la cadena del atributo. Al mismo tiempo, el "&" en sí no se muestra, pero el carácter que sigue inmediatamente al "&" se muestra con un subrayado y el carácter se convierte en una tecla de acceso rápido.
Si el elemento del menú cuyo índice no es 0 ya no es necesario, para reducir la ocupación de los recursos de la memoria, puede usar el método Descargar para descargarlo de la memoria de manera similar, no puede usar Descargar para descargar el elemento del menú cuyo índice; es 0.
Implementación de menú emergente (PopupMenuMethod)
El menú diseñado en la ventana de diseño de menú (MenuDesignWindow) en VB es un menú desplegable. El menú desplegable es un menú que el usuario puede abrir después de realizar una selección en la barra de menú superior en cualquier momento, mientras que el menú emergente es un menú que aparece después de hacer clic con el botón del mouse en un área determinada de la interfaz del programa. En algunos casos, los menús emergentes pueden hacer que las funciones del sistema sean más concisas y eficientes, haciéndolas más fáciles de usar.
El menú emergente del programa Widnows generalmente aparece cuando el usuario hace clic con el botón del mouse en el escritorio del programa. Los menús emergentes se utilizan principalmente para implementar funciones adicionales o mejoradas del sistema. El contenido del menú emergente puede cambiar dependiendo de dónde se haga clic con el botón del mouse. Dado que el menú emergente cubrirá parte de la pantalla, el texto del menú debe acortarse tanto como sea posible.
En VB, la implementación de menús emergentes requiere el uso de tecnología de diseño de menús desplegables y el método PopupMenu. El método específico es:
Diseñe el menú emergente del formulario correspondiente en la ventana de diseño de menú (MenuDesignWindow). Cabe señalar que el menú emergente debe tener al menos un submenú, por lo tanto, este menú no puede tener teclas de acceso directo y el atributo Comprobado debe ser Falso; Luego cambie la propiedad Visible del menú emergente a Falso.
Agregue el siguiente código a Form_Click del formulario con el menú emergente diseñado (suponiendo que la propiedad Nombre del menú emergente sea mnuExample):
SubForm_Clic()
PopupMenumnuEjemplo
FinSub
Si requieres que el menú solo se pueda activar presionando el botón izquierdo o derecho del mouse, debes agregar el siguiente código a Form_MouseDown:
SubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)
IfButton=2thenButton=2 significa botón derecho del mouse
PopupMenumnuEjemplo
Fin si
La sintaxis completa de PopupMenu es:
[Formulario.]PopupMenumenuname[flags[,x[,y]]]
Cambiar el valor de las banderas puede controlar la apariencia del menú emergente. Las banderas tienen dos conjuntos de valores. El primer conjunto de valores se utiliza para controlar el modo de visualización del menú, incluidos POPUPMENU_LEFTALIGNOPUPMENU_CENTERALIGN y POPUPMENU_RIGHTALIGN, que representan respectivamente el modo de visualización con x como límite izquierdo, x como centro y x como límite derecho. Y usar x como límite izquierdo es el método predeterminado; se usa otro conjunto de valores para controlar el método de selección de elementos del menú, incluidos POPUPMENU_LEFTBUTTON y POPUPMENU_RIGHTBUTTON, que indican respectivamente la selección con clic izquierdo y la selección con clic izquierdo/derecho, y La selección con clic izquierdo es la forma predeterminada. El valor de Flags se obtiene aplicando OR a los dos conjuntos de valores anteriores. Por ejemplo, si se requiere que la pantalla esté alineada a la izquierda y se selecciona el botón izquierdo, entonces debería ser:
banderas=POPUPMENU_LEFTALIGNORPOPUPMENU_LEFTBUTTON
x e y se utilizan para definir la posición del menú emergente. La posición predeterminada es la posición del punto del mouse.
Otras propiedades de los elementos del menú.
Utilice la tecla de letra ALT para activar el menú de nivel superior, o utilice la tecla de letra para activar un elemento del menú después de activar el menú. Debe aprender a utilizar &. & se utiliza en el atributo de título (Caption) del elemento del menú. Su uso y función son los mismos que los de los programas de Windows compilados en lenguaje C.
A veces desea que el espacio entre los menús de nivel superior sea mayor o que aparezca un menú de nivel superior en el extremo derecho de la barra de menú. En este caso, debe utilizar un menú cuyo atributo de título sea un espacio. Si el título de un menú se compone de varios espacios, entonces el menú ocupará el espacio correspondiente al número de espacios en la barra de menú, y los menús detrás de él también se moverán hacia atrás secuencialmente si la propiedad Visible de este menú es; Falso, entonces es como si no existiera.
Principios y ejemplos de diseño de ventanas.
A continuación se muestra un ejemplo de tecnología de ventana flotante. Para atraer la atención del usuario o garantizar que las ventanas que contienen información importante no queden cubiertas por otras ventanas, se utiliza la tecnología de ventana flotante para crear una ventana "TopMost". El método específico es:
(1) Agregue la siguiente declaración al programa VB:
DeclareFunctionSetWindowPosLib"usuario"(Byvalh,Byvalhb,Byvalx,Byvaly,Por
valcx,Byvalcy,Byvalf)ComoEntero
GlobalConstSWP_NOMOVE=2
GlobalConstSWP_NOSIZE=1
GlobalConstHWND_TOPMOST=1
GlobalConstHWND_NOTOPMOST=2
GlobalConstFLAGS=SWP_NOMOVEOSWP_NOSIZE
(2) Suponga que desea configurar el formulario frmExample para que sea la ventana que siempre está al frente. Simplemente configure el formulario en Form_Load del formulario frmExample.
Agregue el siguiente código al proceso:
poco éxito
éxito=SetWindowPos(frmExample.hWnd,HWND_TOPMOST,0,0,0,0,FLAGS)
Si desea cancelar la característica que siempre está en la parte superior, puede ejecutar el siguiente código:
éxito=SetWindowPos(frmExample.hWnd,HWND_NOTOPMOST,0,0,0,0,FLAGS)
El éxito no es igual a 0, lo que significa que SetWindowPos se ejecutó correctamente.
En un programa MDI, una ventana es la ventana principal de todas las demás ventanas, y cada ventana secundaria completa una función relativamente independiente, como una combinación de múltiples herramientas independientes. En este sentido, MSWord y FileManager de Windows son los mejores ejemplos. ->