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.344 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. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 TOP! Unser Nr. 1 Neu! sevDataGrid 3.0 Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. |
||||||||||||||||
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. |