Ein großer Nachteil von MDI-Projekten ist der, dass der Hintergrund der MDIForm immer im tristen Standard-Grau von Windows dargestellt wird. Heute möchten wir Ihnen eine Möglichkeit aufzeigen, wie man das triste Grau in einen schönen Farbverlauf verwandeln kann. Hierzu fügen wir der MDIForm zur Laufzeit eine PictureBox hinzu, die wir über die gesamte Größe des MDI-Clientbereichs positionieren, um darin dann den Farbverlauf anzuzeigen. Erstellen Sie ein neues Projekt und fügen diesem eine MDIForm hinzu. Anschließend setzen Sie noch die MDIClient-Eigenschaft der Form1 auf TRUE. Code im Codeteil der MDIForm: Option Explicit ' benötigte API-Deklarationen Private Declare Function FindWindowEx Lib "user32" _ Alias "FindWindowExA" ( _ ByVal hWnd1 As Long, _ ByVal hWnd2 As Long, _ ByVal lpsz1 As String, _ ByVal lpsz2 As String) As Long Private Declare Function SetParent Lib "user32" ( _ ByVal hWndChild As Long, _ ByVal hWndNewParent As Long) As Long Private Declare Function GetClientRect Lib "user32" ( _ ByVal hwnd As Long, _ lpRect As RECT) As Long Private Declare Function MoveWindow Lib "user32" ( _ ByVal hwnd As Long, _ ByVal x As Long, _ ByVal y As Long, _ ByVal nWidth As Long, _ ByVal nHeight As Long, _ ByVal bRepaint As Long) As Long Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type ' Handle des Client-Window Private hWndClient As Long ' temporäre PictureBox für den Farbverlauf Dim WithEvents MDIPicture As PictureBox Private Sub MDIForm_Load() ' Handle des MDIClient-Window ermitteln hWndClient = FindWindowEx(Me.hwnd, 0, "MDIClient", "") ' temporäre PictureBox für den Farbverlauf Set MDIPicture = MDIForm1.Controls.Add("VB.PictureBox", "MDIPicture1") MDIPicture.Visible = True ' PictureBox in das MDIClient-Window setzen SetParent MDIPicture.hwnd, hWndClient ' Child-Form anzeigen Form1.Show End Sub Private Sub MDIForm_Resize() Dim R As RECT ' Größe und Position des MDIClient-Window ermitteln GetClientRect hWndClient, R ' PictureBox-Größe entsprechend anpassen MoveWindow MDIPicture.hwnd, R.Left, R.Top, R.Right, R.Bottom, True End Sub Private Sub MDIForm_Unload(Cancel As Integer) ' temporäre PictureBox sauber entladen Me.Controls.Remove MDIPicture Set MDIPicture = Nothing End Sub Private Sub MDIPicture_Paint() ' Farbverlauf anzeigen MakeGradient MDIPicture, vbBlack, vbWhite, 1 End Sub Die Funktion "MakeGradient" stammt aus dem Tipp Farbverlauf in Fenstern und Objekten. Fügen Sie den entsprechenden Code am besten in ein neues Modul ein. Dieser Tipp wurde bereits 12.569 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
Neu! sevCoolbar 3.0 Professionelle Toolbars im modernen Design! Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Tipp des Monats Januar 2025 Dieter Otter Zeilen einer MultiLine-TextBox ermitteln (VB.NET) Dieser Zipp zeigt, wie man die Zeilen einer MultiLine-TextBox exakt so ermitteln kann, wie diese auch in der TextBox dargestellt werden. Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |