En VB, le formulaire MDI (MultipleDocumentInterface, programme multi-fenêtre) est défini comme ceci : "Le formulaire MDI sert de fenêtre d'arrière-plan d'un programme et contient un formulaire avec l'attribut MDIChild défini sur True." Dans un programme VB, il peut y avoir au plus un formulaire parent MDI et plusieurs formulaires enfants MDI ; la méthode pour créer un formulaire parent MDI consiste à sélectionner "NewMDIForm" dans le menu Fichier de VB.
Lorsque le programme MDI est en cours d'exécution, si la fenêtre enfant a un menu, alors lorsque la fenêtre enfant est activée, le menu de la fenêtre enfant remplacera automatiquement le menu de la fenêtre parent lorsque la fenêtre enfant est réduite, la fenêtre enfant apparaîtra dans le MDI ; icône de la fenêtre parent.
L'émergence de l'interface graphique universelle de Windows permet aux utilisateurs d'ordinateurs d'utiliser facilement divers logiciels Windows sans apprentissage particulier ; non seulement cela, c'est également une norme que les concepteurs de programmes doivent suivre lors de la conception de l'interface des programmes Windows. Elle réduit considérablement la charge de travail. concepteurs de programmes, leur permettant de se concentrer sur la résolution et la mise en œuvre des problèmes.
L'émergence de Visual Basic a encore simplifié la conception des interfaces des programmes Windows. Seule une très petite quantité de code est nécessaire pour implémenter l'interface des applications Windows standard. Cependant, si vous ne comprenez pas les principes de conception d'interface de programme Windows, ou si vous n'êtes pas familier avec les compétences de programmation d'interface sous VB, il sera difficile de concevoir et de mettre en œuvre une interface à la fois conforme aux normes générales et unique. Principes de conception d'interface La conception d'interface repose sur des principes généraux, les plus importants sont :
L'interface doit être cohérente. Le principe de cohérence est le plus facile à violer dans la conception d’une interface, mais aussi le plus facile à modifier et à éviter. Par exemple, la même terminologie doit être utilisée dans les menus et dans l'aide en ligne ;
Il devrait y avoir des raccourcis pour les opérations courantes. Les opérations courantes sont utilisées fréquemment et la durée de la séquence d'opérations doit être réduite. Par exemple, définissez des touches de raccourci pour les opérations courantes sur les fichiers telles que l'ouverture, l'enregistrement et l'enregistrement sous. Fournir des raccourcis pour les opérations courantes améliorera non seulement l'efficacité du travail de l'utilisateur, mais rendra également l'interface simple et efficace dans la mise en œuvre fonctionnelle.
Fournissez une gestion simple des erreurs. Le système doit avoir des capacités de gestion des erreurs. Le système doit être capable de détecter les erreurs lorsqu'elles se produisent et de fournir des capacités de gestion des erreurs simples et compréhensibles. L'état du système ne change pas après qu'une erreur se produit ou le système doit fournir des conseils de récupération après erreur.
Fournir des retours d’informations. Il devrait y avoir un retour d'informations pour les opérations importantes de l'opérateur. Il n'y a aucune exigence de retour d'informations sur les opérations simples et couramment utilisées, mais pour les opérations rarement utilisées et cruciales, le système doit fournir un retour d'informations.
Le fonctionnement est réversible. L'opération doit être réversible. Ceci est utile pour les opérateurs sans connaissances spécialisées. Une action réversible peut être une opération unique ou une séquence d’opérations relativement indépendante.
Aide en ligne bien conçue. Même si l'aide en ligne n'est pas indispensable pour les utilisateurs expérimentés, elle joue un rôle très important pour la plupart des utilisateurs non qualifiés.
Principes de conception et programmation des menus
La conception des menus repose sur les principes généraux suivants :
Organisez les menus en fonction des fonctions du système.
Choisissez une arborescence de menu large et peu profonde plutôt qu’une arborescence de menu étroite et profonde.
Regroupez les options du menu selon leur signification et triez-les selon certaines règles. Les titres des options de menu doivent être courts, clairs et de préférence commencer par un mot-clé.
Les touches de raccourci doivent être définies pour les options fréquemment utilisées. Combinant les principes ci-dessus, la programmation de menus dispose des technologies et techniques suivantes :
Regroupement des options de menu
En VB, le regroupement des options de menu est obtenu en divisant la barre de menu par des lignes horizontales. Ajoutez un élément de menu avec un attribut Légende de « » à une certaine position dans le menu et il apparaîtra sous la forme d'une ligne horizontale dans le menu. Dans de nombreux cas, le même menu de fonctions peut être divisé en plusieurs groupes selon les fonctions des options de menu. Dans ce cas, des lignes horizontales de séparation peuvent être utilisées pour regrouper les éléments de menu.
Paramètres des touches de raccourci pour les options courantes
Ouvrez la fenêtre de conception de menu (MenuDesignWindow). Il devrait y avoir une liste de touches de raccourci (Raccourci) correspondante pour chaque option de menu. Il convient de noter que les touches de raccourci pour les menus avec sous-menus ou menus de niveau supérieur ne peuvent pas être définies de cette manière. Selon les principes de conception de l'interface Windows, la touche de raccourci pour le menu supérieur se présente sous la forme de la touche Alt. Sa méthode de mise en œuvre sera décrite ultérieurement.
Pour certains éléments du menu de fonctions couramment utilisés, il existe des touches de raccourci conventionnelles. Par exemple, utilisez CTRL O pour ouvrir un fichier, CRTL S pour enregistrer un fichier, CTRL P pour imprimer, etc.
Après avoir défini une touche de raccourci pour une option de menu, une représentation textuelle de la touche de raccourci apparaît derrière l'option dans le menu.
Activer et désactiver les options de menu visibles et masquées Afin d'exprimer certaines fonctions spéciales des options de menu, les attributs d'activation et de désactivation, visibles et masqués des options de menu peuvent être utilisés. Lorsque la fonction représentée par une option ne peut pas être réalisée pour une raison quelconque, il convient d'interdire la sélection de l'option. Les options de menu sont activées et désactivées en modifiant l'attribut Activé de l'option. Par exemple, en supposant que l'option de menu soit nommée nmuName, la désactivation de cette option peut être implémentée comme suit :
mnuName.Enabled=False
De la même manière, vous pouvez masquer une option en utilisant
mnuName.Visible=Faux
Pour y parvenir, pour rendre à nouveau visible une option masquée, utilisez
mnuName.Visible=Vrai
accomplir.
Le masquage et la restauration de la visibilité des éléments de menu sont souvent utilisés dans la mise en œuvre de menus dynamiques.
Chargement dynamique des éléments de menu
Le chargement dynamique des éléments de menu signifie que le nombre d'éléments de menu n'est pas fixe et peut être chargé dynamiquement en cas de besoin. L'exemple le plus simple est la liste des fichiers récemment ouverts dans le menu Fichier. Avant d'ouvrir un fichier pour la première fois, la liste est vide et n'apparaît pas dans le menu fichier ; après l'ouverture d'un fichier, la liste n'est plus vide et l'élément de menu représentant le fichier ouvert apparaît dans le menu fichier.
Dans l'exemple ci-dessus, l'attribut d'indice (Index), l'attribut de titre (Caption), l'attribut visible (Visible) de l'élément de menu et la méthode de chargement (LoadMethod) de l'élément de menu sont largement utilisés.
Le processus spécifique de mise en œuvre est le suivant :
Ajoutez un élément de menu au menu fichier avec un titre arbitraire et supposez que l'attribut Name de l'élément de menu est open_files_list ;
Modifiez l'attribut visible de l'élément de menu open_files_list pour que open_files_list.Visible=False
Modifiez l'attribut d'indice de l'élément de menu open_files_list afin que
open_files_files_list.Index=0
Contrôlez le chargement dynamique de l'élément de menu open_files_list dans le programme.
Supposons que vous souhaitiez afficher le nom de fichier du deuxième fichier qui a été ouvert et que le nom de fichier soit stocké dans un tableau de noms de fichier open_file_name. Le code suivant implémente cette fonction :
Loadopened_files_list(1)
open_files_lise(1).Caption="&2" open_file_name(1)
open_files_list(1).Visible=True
Il convient de noter que la méthode Load ne peut pas être utilisée pour les éléments de menu dont l'indice est 0. Étant donné que l'élément de menu a été chargé dans la mémoire lors de l'exécution du programme, le caractère "&" dans le caractère d'attribut du titre de l'élément de menu a une signification particulière et sa fonction est d'afficher la chaîne d'attribut. En même temps, le "&" lui-même n'est pas affiché, mais le caractère qui suit immédiatement le "&" est affiché avec un soulignement et le caractère devient un raccourci clavier.
Si l'élément de menu dont l'index est différent de 0 n'est plus nécessaire, afin de réduire l'occupation des ressources mémoire, vous pouvez utiliser la méthode Unload pour le décharger de la mémoire de la même manière, vous ne pouvez pas utiliser Unload pour décharger l'élément de menu dont l'index ; est 0.
Implémentation du menu contextuel (PopupMenuMethod)
Le menu conçu dans la fenêtre de conception de menu (MenuDesignWindow) en VB est un menu déroulant. Le menu déroulant est un menu que l'utilisateur peut extraire à tout moment après avoir effectué une sélection dans la barre de menu supérieure, tandis que le menu contextuel est un menu qui apparaît après avoir cliqué sur le bouton de la souris dans une certaine zone de l'interface du programme. Dans certains cas, les menus contextuels peuvent rendre les fonctions du système plus concises et efficaces, les rendant ainsi plus faciles à utiliser.
Le menu contextuel du programme Widnows apparaît généralement lorsque l'utilisateur clique sur le bouton de la souris sur le bureau du programme. Les menus contextuels sont principalement utilisés pour implémenter des fonctions supplémentaires ou améliorées du système. Le contenu du menu contextuel peut changer en fonction de l'endroit où le bouton de la souris est cliqué. Étant donné que le menu contextuel couvrira une partie de l'écran, le texte du menu doit être raccourci autant que possible.
En VB, la mise en œuvre de menus contextuels nécessite l'utilisation de la technologie de conception de menus déroulants et de la méthode PopupMenu. La méthode spécifique est la suivante :
Concevez le menu contextuel du formulaire correspondant dans la fenêtre de conception de menu (MenuDesignWindow). Il est à noter que le menu à afficher doit avoir au moins un sous-menu ; ce menu ne peut donc pas avoir de touches de raccourci et l'attribut Checked doit être False. Modifiez ensuite la propriété Visible du menu contextuel sur False.
Ajoutez le code suivant à Form_Click du formulaire avec le menu contextuel conçu (en supposant que la propriété Name du menu contextuel est mnuExample) :
Sous-Formulaire_Clic()
PopupMenumnuExemple
FinSub
Si vous exigez que le menu ne puisse être activé qu'en appuyant sur le bouton gauche ou droit de la souris, vous devez ajouter le code suivant à Form_MouseDown :
SubForm_MouseDown (ButtonAsInteger, ShiftAsInteger, xAsSingle, yAsSingle)
IfButton=2thenButton=2 signifie le bouton droit de la souris
PopupMenumnuExemple
FinSi
La syntaxe complète de PopupMenu est :
[Formulaire.]Nom du menu contextuel[flags[,x[,y]]]
Changer la valeur des indicateurs peut contrôler l'apparence du menu contextuel. Les drapeaux ont deux ensembles de valeurs. Le premier ensemble de valeurs est utilisé pour contrôler le mode d'affichage du menu, notamment POPUPMENU_LEFTALIGNPOPUPMENU_CENTERALIGN et POPUPMENU_RIGHTALIGN, qui représentent respectivement le mode d'affichage avec x comme limite gauche, x comme centre et x comme limite droite. Et utiliser x comme limite gauche est la méthode par défaut ; un autre ensemble de valeurs est utilisé pour contrôler la méthode de sélection des éléments de menu, notamment POPUPMENU_LEFTBUTTON et POPUPMENU_RIGHTBUTTON, qui indiquent respectivement la sélection par clic gauche et la sélection par clic gauche/droit, et la sélection par clic gauche est la méthode par défaut. La valeur de Flags est obtenue en combinant par OU les deux ensembles de valeurs ci-dessus. Par exemple, si l'affichage doit être aligné à gauche et que le bouton gauche est sélectionné, alors il doit être :
flags=POPUPMENU_LEFTALIGNORPOPUPMENU_LEFTBUTTON
x et y sont utilisés pour définir la position du menu contextuel. La valeur par défaut est la position du point de la souris.
Autres propriétés des éléments de menu
Utilisez la touche alphabétique ALT pour activer le menu de niveau supérieur ou utilisez la touche alphabétique pour activer un élément de menu une fois le menu activé. Vous devez apprendre à utiliser &. & est utilisé dans l'attribut titre (Légende) de l'élément de menu. Son utilisation et sa fonction sont les mêmes que celles des programmes Windows compilés en langage C.
Parfois, vous souhaitez que l'espace entre les menus de niveau supérieur soit plus grand ou qu'un menu de niveau supérieur apparaisse à l'extrémité droite de la barre de menus. Dans ce cas, vous devez utiliser un menu dont l'attribut de titre est un espace. Si le titre d'un menu est composé de plusieurs espaces, alors le menu occupera l'espace correspondant au nombre d'espaces sur la barre de menu, et les menus derrière lui seront également reculés séquentiellement si la propriété Visible de ce menu est ; False , alors c'est comme si cela n'existait pas.
Principes et exemples de conception de fenêtres
Vous trouverez ci-dessous un exemple de technologie de fenêtre flottante. Afin d'attirer l'attention de l'utilisateur ou de garantir que les fenêtres contenant des informations importantes ne soient pas couvertes par d'autres fenêtres, la technologie des fenêtres flottantes est utilisée pour créer une fenêtre « TopMost ». La méthode spécifique est la suivante :
(1) Ajoutez l'instruction suivante au programme VB :
DeclareFunctionSetWindowPosLib"utilisateur"(Byvalh,Byvalhb,Byvalx,Byvaly,By
valcx,Byvalcy,Byvalf)AsInteger
GlobalConstSWP_NOMOVE=2
GlobalConstSWP_NOSIZE=1
GlobalConstHWND_TOPMOST=1
GlobalConstHWND_NOTOPMOST=2
GlobalConstFLAGS=SWP_NOMOVEOuSWP_NOSIZE
(2) Supposons que vous souhaitiez définir le formulaire frmExample comme étant la fenêtre qui est toujours au premier plan. Définissez simplement le formulaire dans Form_Load du formulaire frmExample.
Ajoutez le code suivant au processus :
Diminution du succès
success=SetWindowPos(frmExample.hWnd,HWND_TOPMOST,0,0,0,0,FLAGS)
Si vous souhaitez annuler la fonctionnalité qui est toujours au premier plan, vous pouvez exécuter le code suivant :
success=SetWindowPos(frmExample.hWnd,HWND_NOTOPMOST,0,0,0,0,FLAGS)
Le succès n'est pas égal à 0, ce qui signifie que SetWindowPos est exécuté avec succès.
Dans un programme MDI, une fenêtre est la fenêtre parent de toutes les autres fenêtres, et chaque fenêtre enfant remplit une fonction relativement indépendante, tout comme une combinaison de plusieurs outils indépendants. À cet égard, MSWord et FileManager de Windows sont les meilleurs exemples. ->