In VB ist das MDI-Formular (MultipleDocumentInterface, Mehrfensterprogramm) wie folgt definiert: „Das MDI-Formular dient als Hintergrundfenster eines Programms und enthält ein Formular, dessen MDIChild-Attribut auf True gesetzt ist.“ In einem VB-Programm kann es höchstens ein übergeordnetes MDI-Formular und mehrere untergeordnete MDI-Formulare geben. Die Methode zum Erstellen eines übergeordneten MDI-Formulars besteht darin, „NewMDIForm“ im Menü „Datei“ von VB auszuwählen.
Wenn das MDI-Programm ausgeführt wird und das untergeordnete Fenster über ein Menü verfügt, ersetzt das Menü des untergeordneten Fensters automatisch das Menü des übergeordneten Fensters. Wenn das untergeordnete Fenster minimiert wird, wird das untergeordnete Fenster im MDI angezeigt übergeordnetes Fenstersymbol.
Das Aufkommen der universellen grafischen Benutzeroberfläche von Windows ermöglicht Computerbenutzern nicht nur die einfache Verwendung verschiedener Windows-Software, sondern ist auch ein Standard, den Programmdesigner bei der Gestaltung der Benutzeroberfläche von Windows-Programmen befolgen müssen Programmdesigner, die es ihnen ermöglichen, sich auf die Lösung und Umsetzung von Problemen zu konzentrieren.
Das Aufkommen von Visual Basic hat das Design von Windows-Programmschnittstellen weiter vereinfacht. Zur Implementierung der Schnittstelle von Standard-Windows-Anwendungen ist nur noch sehr wenig Code erforderlich. Wenn Sie jedoch die Prinzipien des Windows-Programmschnittstellendesigns nicht verstehen oder nicht mit den Fähigkeiten der Schnittstellenprogrammierung unter VB vertraut sind, wird es schwierig sein, eine Schnittstelle zu entwerfen und zu implementieren, die sowohl allgemeinen Standards entspricht als auch einzigartig ist. Prinzipien des Interface-Designs Das Interface-Design hat allgemeine Prinzipien, die wichtigsten sind:
Die Schnittstelle muss konsistent sein. Das Prinzip der Konsistenz ist beim Interface-Design am einfachsten zu verletzen und auch am einfachsten zu ändern und zu vermeiden. Beispielsweise muss in Menüs dieselbe Terminologie verwendet werden und in Online-Hilfen muss der Stil identisch sein.
Es sollten Verknüpfungen für allgemeine Vorgänge vorhanden sein. Gemeinsame Operationen werden häufig verwendet und die Länge der Operationssequenz sollte reduziert werden. Legen Sie beispielsweise Tastenkombinationen für allgemeine Dateivorgänge wie Öffnen, Speichern und Speichern unter fest. Die Bereitstellung von Verknüpfungen für allgemeine Vorgänge verbessert nicht nur die Arbeitseffizienz des Benutzers, sondern macht die Schnittstelle auch einfach und effizient in der funktionalen Implementierung.
Sorgen Sie für eine einfache Fehlerbehandlung. Das System muss über Fähigkeiten zur Fehlerbehandlung verfügen. Das System sollte in der Lage sein, auftretende Fehler zu erkennen und einfache und verständliche Fehlerbehandlungsfunktionen bereitzustellen. Der Status des Systems ändert sich nicht, nachdem ein Fehler aufgetreten ist, oder das System muss Anleitungen zur Fehlerbehebung bereitstellen.
Geben Sie Informations-Feedback. Für wichtige Vorgänge des Bedieners sollte eine Informationsrückmeldung erfolgen. Für häufig verwendete und einfache Vorgänge ist keine Rückmeldung erforderlich. Für selten verwendete und wichtige Vorgänge sollte das System jedoch Informationsrückmeldungen bereitstellen.
Der Betrieb ist reversibel. Der Vorgang sollte reversibel sein. Dies ist für Bediener ohne Spezialkenntnisse nützlich. Eine reversible Aktion kann ein einzelner Vorgang oder eine relativ unabhängige Abfolge von Vorgängen sein.
Gut gestaltete Online-Hilfe. Obwohl Online-Hilfe für erfahrene Benutzer nicht unbedingt erforderlich ist, spielt sie für die meisten ungeübten Benutzer eine sehr wichtige Rolle.
Menüdesignprinzipien und Programmierung
Bei der Menügestaltung gelten die folgenden allgemeinen Grundsätze:
Organisieren Sie Menüs nach Systemfunktionen.
Wählen Sie einen breiten und flachen Menübaum anstelle eines schmalen und tiefen Menübaums.
Gruppieren Sie die Menüoptionen nach ihrer Bedeutung und sortieren Sie sie nach bestimmten Regeln. Titel von Menüoptionen sollten kurz und klar sein und vorzugsweise mit einem Schlüsselwort beginnen.
Für häufig verwendete Optionen müssen Tastenkombinationen festgelegt werden. Durch die Kombination der oben genannten Prinzipien verfügt die Menüprogrammierung über die folgenden Technologien und Techniken:
Gruppierung von Menüoptionen
In VB wird die Gruppierung von Menüoptionen durch die Unterteilung der Menüleiste durch horizontale Linien erreicht. Fügen Sie an einer bestimmten Position im Menü ein Menüelement mit dem Beschriftungsattribut „“ hinzu, und es wird als horizontale Linie im Menü angezeigt. In vielen Fällen kann das gleiche Funktionsmenü entsprechend den Funktionen der Menüoptionen in mehrere Gruppen unterteilt werden. In diesem Fall können horizontale Trennlinien zum Gruppieren der Menüpunkte verwendet werden.
Einstellungen der Tastenkombinationen für allgemeine Optionen
Öffnen Sie das Menüdesign-Fenster (MenuDesignWindow). Für jede Menüoption sollte eine entsprechende Tastenkombinationsliste vorhanden sein. Es ist zu beachten, dass Tastenkombinationen für Menüs mit Untermenüs oder Menüs der obersten Ebene auf diese Weise nicht definiert werden können. Gemäß den Designprinzipien der Windows-Benutzeroberfläche hat die Tastenkombination für das Hauptmenü die Form der Alt-Buchstabentaste. Die Implementierungsmethode wird später beschrieben.
Für einige häufig verwendete Funktionsmenüelemente gibt es herkömmliche Tastenkombinationen. Verwenden Sie beispielsweise STRG O, um eine Datei zu öffnen, STRG S, um eine Datei zu speichern, STRG P, um zu drucken, und so weiter.
Nachdem Sie eine Tastenkombination für eine Menüoption definiert haben, wird hinter der Option im Menü eine Textdarstellung der Tastenkombination angezeigt.
Aktivieren und Deaktivieren, sichtbare und ausgeblendete Menüoptionen Um einige spezielle Funktionen von Menüoptionen auszudrücken, können die Attribute „Aktivieren“ und „Deaktivieren“, „sichtbar“ und „ausgeblendet“ von Menüoptionen verwendet werden. Wenn die durch eine Option dargestellte Funktion aus irgendeinem Grund nicht realisiert werden kann, sollte die Auswahl der Option verboten werden. Menüoptionen werden aktiviert und deaktiviert, indem das Attribut „Enabled“ der Option geändert wird. Angenommen, die Menüoption heißt nmuName, kann die Deaktivierung dieser Option wie folgt implementiert werden:
mnuName.Enabled=Falsch
Auf die gleiche Weise können Sie eine Option mit ausblenden
mnuName.Visible=Falsch
Um dies zu erreichen, verwenden Sie, um eine ausgeblendete Option wieder sichtbar zu machen
mnuName.Visible=True
erreichen.
Das Ausblenden und Wiederherstellen der Sichtbarkeit von Menüpunkten wird häufig bei der Implementierung dynamischer Menüs verwendet.
Dynamisches Laden von Menüpunkten
Dynamisches Laden von Menüpunkten bedeutet, dass die Anzahl der Menüpunkte nicht festgelegt ist und bei Bedarf dynamisch geladen werden kann. Das einfachste Beispiel ist die Liste der zuletzt geöffneten Dateien im Menü „Datei“. Vor dem ersten Öffnen einer Datei ist die Liste leer und erscheint nicht im Dateimenü; nach dem Öffnen einer Datei ist die Liste nicht mehr leer und der Menüpunkt, der die geöffnete Datei darstellt, erscheint im Dateimenü.
Im obigen Beispiel werden das Indexattribut (Index), das Titelattribut (Caption), das sichtbare Attribut (Visible) des Menüelements und die Lademethode (LoadMethod) des Menüelements umfassend verwendet.
Der spezifische Implementierungsprozess ist wie folgt:
Fügen Sie dem Dateimenü einen Menüpunkt mit einem beliebigen Titel hinzu und gehen Sie davon aus, dass das Name-Attribut des Menüpunkts open_files_list ist;
Ändern Sie das sichtbare Attribut des Menüpunkts open_files_list so, dass open_files_list.Visible=False ist
Ändern Sie das Subscript-Attribut des Menüpunkts open_files_list so
open_files_files_list.Index=0
Steuern Sie das dynamische Laden des Menüpunkts open_files_list im Programm.
Angenommen, Sie möchten den Dateinamen der zweiten geöffneten Datei anzeigen und der Dateiname wird in einem Dateinamen-Array „opened_file_name“ gespeichert. Der folgende Code implementiert diese Funktion:
Loadopened_files_list(1)
open_files_lise(1).Caption="&2" open_file_name(1)
open_files_list(1).Visible=True
Es ist zu beachten, dass die Load-Methode nicht für Menüelemente verwendet werden kann, deren Index 0 ist. Da der Menüpunkt beim Ausführen des Programms in den Speicher geladen wurde, hat das Zeichen „&“ im Titelattributzeichen des Menüpunkts eine besondere Bedeutung und seine Funktion besteht darin, die Attributzeichenfolge anzuzeigen Gleichzeitig wird das „&“ selbst nicht angezeigt, aber das Zeichen direkt nach dem „&“ wird mit einem Unterstrich angezeigt und das Zeichen wird zu einem Hotkey.
Wenn der Menüpunkt, dessen Index nicht 0 ist, nicht mehr benötigt wird, können Sie ihn mit der Unload-Methode aus dem Speicher entladen, um die Belegung von Speicherressourcen zu verringern. Ebenso können Sie Unload nicht zum Entladen des Menüpunkts verwenden, dessen Index nicht lautet ist 0.
Implementierung eines Popup-Menüs (PopupMenuMethod)
Das im Menüdesignfenster (MenuDesignWindow) in VB entworfene Menü ist ein Dropdown-Menü. Das Dropdown-Menü ist ein Menü, das der Benutzer nach einer Auswahl in der oberen Menüleiste jederzeit herausziehen kann, während das Popup-Menü ein Menü ist, das nach dem Klicken mit der Maustaste in einem bestimmten Bereich von angezeigt wird die Programmoberfläche. In manchen Fällen können Popup-Menüs Systemfunktionen prägnanter und effizienter gestalten und so ihre Verwendung erleichtern.
Das Popup-Menü des Widnows-Programms erscheint im Allgemeinen, wenn der Benutzer mit der Maustaste auf den Desktop des Programms klickt. Popup-Menüs werden meist verwendet, um zusätzliche oder erweiterte Funktionen des Systems zu implementieren. Der Inhalt des Popup-Menüs kann sich abhängig davon ändern, wo mit der Maustaste geklickt wird. Da das Popup-Menü einen Teil des Bildschirms einnimmt, sollte der Text im Menü so weit wie möglich gekürzt werden.
In VB erfordert die Implementierung von Popup-Menüs die Verwendung der Dropdown-Menü-Designtechnologie und der PopupMenu-Methode. Die spezifische Methode ist:
Entwerfen Sie das Popup-Menü des entsprechenden Formulars im Menüdesignfenster (MenuDesignWindow). Es ist zu beachten, dass das aufzurufende Menü mindestens ein Untermenü haben muss; daher darf dieses Menü keine Tastenkombinationen haben und das Attribut „Checked“ muss „Falsch“ sein. Ändern Sie dann die Visible-Eigenschaft des Popup-Menüs in False.
Fügen Sie den folgenden Code zu Form_Click des Formulars mit dem entworfenen Popup-Menü hinzu (vorausgesetzt, die Name-Eigenschaft des Popup-Menüs ist mnuExample):
SubForm_Click()
PopupMenumnuExample
EndSub
Wenn Sie möchten, dass das Menü nur durch Drücken der linken oder rechten Maustaste aktiviert werden kann, müssen Sie den folgenden Code zu Form_MouseDown hinzufügen:
SubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)
IfButton=2thenButton=2 bedeutet rechte Maustaste
PopupMenumnuExample
EndIf
Die vollständige Syntax von PopupMenu lautet:
[Formular.]PopupMenumenuname[Flags[,x[,y]]]
Durch Ändern des Werts von Flags kann das Erscheinungsbild des Popup-Menüs gesteuert werden. Flags haben zwei Wertesätze. Der erste Satz von Werten wird verwendet, um den Anzeigemodus des Menüs zu steuern, einschließlich POPUPMENU_LEFTALIGNPOPUPMENU_CENTERALIGN und POPUPMENU_RIGHTALIGN, die jeweils den Anzeigemodus mit x als linker Grenze, x als Mitte und x als rechter Grenze darstellen. Und die Verwendung von x als linke Grenze ist die Standardmethode; ein weiterer Satz von Werten wird verwendet, um die Auswahlmethode von Menüelementen zu steuern, einschließlich POPUPMENU_LEFTBUTTON und POPUPMENU_RIGHTBUTTON, die jeweils eine Linksklick-Auswahl und eine Links-/Rechtsklick-Auswahl angeben Die Auswahl per Linksklick ist die Standardmethode. Der Wert von Flags wird durch ODER-Verknüpfung der beiden oben genannten Wertesätze ermittelt. Wenn die Anzeige beispielsweise linksbündig ausgerichtet sein soll und die linke Schaltfläche ausgewählt ist, sollte Folgendes gelten:
flags=POPUPMENU_LEFTALIGNORPOPUPMENU_LEFTBUTTON
x und y werden verwendet, um die Position des Menü-Popups zu definieren. Die Standardeinstellung ist die Position des Mauspunkts.
Weitere Eigenschaften von Menüelementen
Verwenden Sie die ALT-Buchstabentaste, um das Menü der obersten Ebene zu aktivieren, oder verwenden Sie die Buchstabentaste, um einen Menüpunkt zu aktivieren, nachdem das Menü aktiviert wurde. Sie müssen lernen, & zu verwenden. & wird im Titelattribut (Caption) des Menüpunkts verwendet. Seine Verwendung und Funktion sind die gleichen wie in Windows-Programmen, die in der Sprache C kompiliert wurden.
Manchmal möchten Sie, dass der Abstand zwischen Menüs der obersten Ebene größer ist oder dass ein Menü der obersten Ebene am rechten Ende der Menüleiste angezeigt wird. In diesem Fall müssen Sie ein Menü verwenden, dessen Titelattribut ein Leerzeichen ist. Wenn der Titel eines Menüs aus mehreren Leerzeichen besteht, nimmt das Menü den Platz ein, der der Anzahl der Leerzeichen in der Menüleiste entspricht, und die Menüs dahinter werden ebenfalls der Reihe nach nach hinten verschoben, wenn die Visible-Eigenschaft dieses Menüs lautet False , dann ist es so, als ob es nicht existiert.
Prinzipien und Beispiele für die Fenstergestaltung
Nachfolgend finden Sie ein Beispiel für die Floating-Window-Technologie. Um die Aufmerksamkeit des Benutzers zu erregen oder sicherzustellen, dass Fenster mit wichtigen Informationen nicht von anderen Fenstern verdeckt werden, wird mithilfe der Floating-Window-Technologie ein „TopMost“-Fenster erstellt. Die spezifische Methode ist:
(1) Fügen Sie dem VB-Programm die folgende Anweisung hinzu:
DeclareFunctionSetWindowPosLib"user"(Byvalh,Byvalhb,Byvalx,Byvaly,By
valcx,Byvalcy,Byvalf)AsInteger
GlobalConstSWP_NOMOVE=2
GlobalConstSWP_NOSIZE=1
GlobalConstHWND_TOPMOST=1
GlobalConstHWND_NOTOPMOST=2
GlobalConstFLAGS=SWP_NOMOVEOrSWP_NOSIZE
(2) Angenommen, Sie möchten das Formular frmExample so festlegen, dass es das Fenster ist, das sich immer im Vordergrund befindet. Legen Sie das Formular einfach im Form_Load des frmExample-Formulars fest.
Fügen Sie dem Prozess den folgenden Code hinzu:
Schwacher Erfolg
success=SetWindowPos(frmExample.hWnd,HWND_TOPMOST,0,0,0,0,FLAGS)
Wenn Sie die immer oben stehende Funktion abbrechen möchten, können Sie den folgenden Code ausführen:
success=SetWindowPos(frmExample.hWnd,HWND_NOTOPMOST,0,0,0,0,FLAGS)
Erfolg ist ungleich 0, was bedeutet, dass SetWindowPos erfolgreich ausgeführt wurde.
In einem MDI-Programm ist ein Fenster das übergeordnete Fenster aller anderen Fenster, und jedes untergeordnete Fenster führt eine relativ unabhängige Funktion aus, genau wie eine Kombination mehrerer unabhängiger Tools. In dieser Hinsicht sind MSWord und der FileManager von Windows die besten Beispiele. ->