Bei der Entwicklung von Software sind wir der Meinung, dass die Schönheit der Schnittstelle ein wichtiger Faktor für den Erfolg einer Software ist. Wir haben einige erfolgreiche kommerzielle Software sorgfältig untersucht Ja, der Hintergrund des Programmfensters kann sehr schöne und dreidimensionale Muster anzeigen. Wenn Sie Visual Basic 3.0 oder 4.0 für den Formularentwurf verwenden und nur die vom System bereitgestellten Funktionen befolgen, können Sie nur eine Farbe aus einer begrenzten Anzahl von Farben auswählen oder ein Programm zum Zeichnen einiger einfacher Linien verwenden. Wenn Sie ein Texturmuster mit einem starken dreidimensionalen Eindruck erzielen möchten, können Sie im Allgemeinen nur das PICTURE-Attribut des Formulars zum Aufrufen der Bitmap-Datei verwenden. Bei der Verwendung dieser Methode gibt es viele Nachteile. Einer davon ist die Größe des Formulars ist durch die Größe der Bitmap begrenzt und die Anpassung ist mühsam. Zweitens ist sie eine Verschwendung von Ressourcen, da es sich bei dem Muster grundsätzlich um ein sich wiederholendes Muster handelt Das Formular ist eine Verschwendung.
Im Folgenden wird eine Methode zum Implementieren von Formularhintergrundmustern vorgestellt. Erstellen Sie ein Rastersteuerelement auf dem Formular, stellen Sie die Rasterzeilen so ein, dass sie unsichtbar sind, entfernen Sie die festen Zeilen und Spalten und stellen Sie das Rastersteuerelement mit einem Programm auf die gleiche Größe wie das Formular ein und ändern Sie es, wenn sich die Größe des Formulars ändert. Entwerfen Sie dann ein Muster, um eine BMP-Bitmap-Datei zu bilden (das Programm in diesem Artikel verwendet die Datei Pict1.bmp) oder fangen Sie ein Muster aus anderen Bildern ab. Sie können auch das vom Windows-System bereitgestellte Muster verwenden (z. B. c:windowsTiles). bmp) zum Aufruf der Bildsteuerung. Stellen Sie jede Einheit des Rasters auf die gleiche Größe wie das Muster ein, sodass die Anzahl der Einheiten gerade den gesamten Formularhintergrund abdeckt, und zeigen Sie dann das Muster in allen Einheiten an. Der obige Vorgang wird durch die Unterroutine Backpict() realisiert, unabhängig von der Größe des Musters oder der Fenstergröße.
Das Programm kann die Größe der Rastersteuerung, die Größe der Rastereinheiten und die Anzahl der Einheiten automatisch anpassen. Das Programm wurde unter VisualBasic4.0 erfolgreich debuggt.
1. Erstellen Sie ein neues Formular Form1 mit den folgenden Eigenschaften:
Caption="Realisierung des Hintergrundmusters"
Borderstyle=3 (keine Maximum- und Minimum-Schaltflächen)
2. Erstellen Sie ein Rastersteuerelement Grid1. Seine Position und Größe werden im Programm festgelegt (die gleiche Größe wie Form1), und seine Eigenschaften sind:
Aktiviert = Falsch (der Fokus wird nicht auf das Rastersteuerelement „Grid1“ fallen)
Fillstyle=1 (Ändern Sie die Texteigenschaften aller Zellen)
Fixedcols=0 (keine festen Zeilen)
Fixedrows=0 (keine festen Spalten)
Gridlines=False (Gitterlinien sind nicht sichtbar),
Sichtbar=Wahr
3. Erstellen Sie das Bildsteuerelement Picture1. Wenn das Programm ausgeführt wird, fügen Sie das Grundmuster des Hintergrundmusters ein, und die Eigenschaften werden angezeigt
Sichtbar=Falsch (unsichtbar)
Autosize=True (Größe automatisch anpassen)
4. Fügen Sie Sheridan3DControls zum Steuerelement hinzu, wählen Sie die dreidimensionale Befehlsschaltfläche SSCommand aus und erstellen Sie zwei
Taste
SSCommand1.Caption="Beenden"
SSCommand2.Caption="Hintergrund ändern" (demonstriert verschiedene Hintergrundmuster)
Ihre Eigenschaft „Bild“ kann das gleiche oder ein anderes Muster wie der Hintergrund aufrufen, wenn Sie das normale Befehlsschaltflächen-Steuerelement verwenden
Der Befehl kann ebenfalls verwendet werden, die Befehlsschaltfläche hat jedoch kein Hintergrundmuster.
5. Erstellen Sie eine Unterroutine zur Hintergrundmusterbildung:
DimpictfileAsString`Bitmap-Dateiname
DimFILEPATHAsString`Dateipfad
SubBackpict(Bilddatei)
picture1.ScaleMode=3
Form1.ScaleMode=3
picture1.Picture=LoadPicture(pictfile)
„Das Rastersteuerelement deckt den gesamten Formularhintergrund ab.“
grid1.Top=-1
grid1.Left=-1
grid1.Width=Breite
grid1.Height=Höhe
grid1.Cols=Int(Form1.ScaleWidth/picture1.ScaleWidth) 1
grid1.Rows=Int(Form1.ScaleHeight/picture1.ScaleHeight) 1
„Alle Zellengrößen entsprechen der Basismustergröße.“
ForI=0Togrid1.Cols-1
Forj=0Togrid1.Rows-1
grid1.ColWidth(I)=picture1.ScaleWidth*15
grid1.RowHeight(j)=picture1.ScaleHeight*15
Weiterj
WeiterIch
„Alle Einheiten auswählen.“
grid1.SelStartCol=0
grid1.SelStartRow=0
grid1.SelEndCol=grid1.Cols-1
grid1.SelEndRow=grid1.Rows-1
grid1.Picture=Bild1.Bild
EndSub
6. Hauptprogramm bilden
PRivateSubForm_Load()
PrivateSubForm_Load()
„Den Pfadnamen des laufenden Programms abrufen, mit einem Backslash nach dem Pfadnamen.“
IfRight(App.Path,1)<>""Then
filePath=App.Path&""
Anders
filePath=App.Path
EndIf
„Das Formular zeigt zunächst einen Hintergrund an, der aus dem Grundmuster Tiles.bmp besteht.“
pictfile="c:windowsTiles.bmp"
Backpict(Bilddatei)
EndSub
7. Befehlsschaltfläche zum Beenden des Programms
PrivateSubSSCommand1_Click()
Ende
EndSub
8. Demonstrieren Sie verschiedene Schattierungsmuster
PrivateSubSSCommand2_Click()
„Zwei Hintergrundmuster zeigen abwechselnd.“
Ifpictfile=filePath&"Pict1.bmp"Dann
pictfile="c:windowsTiles.bmp"
Anders
pictfile=filePath&"Pict1.bmp"
EndIf
Rückbild (Bilddatei)
EndSub->