Rubrik: Grafik & Zeichnen | 13.09.01 |
CreateSolidBrush-Funktion Diese Funktion erstellt einen einfarbigen Pinsel in der angegebenen Farbe. | ||
Betriebssystem: Win95, Win98, WinNT 3.1, Win2000, WinME | Views: 11.107 |
Deklaration:
Declare Function CreateSolidBrush Lib "gdi32.dll" ( _ ByVal crColor As Long) As Long
Beschreibung:
Diese Funktion erstellt einen einfarbigen Pinsel in der angegebenen Farbe.
Parameter:
crColor | Erwartet eine RGB-Farbe des Pinsels. |
Rückgabewert:
Ist die Funktion erfolgreich, so ist die Rückgabe das Handle des neu erstellten Pinsels, andernfalls wird "0" zurückgegeben.
Beispiel:
Private Declare Function CreateSolidBrush Lib "gdi32.dll" ( _ ByVal crColor As Long) As Long Private Declare Function DeleteObject Lib "gdi32.dll" ( _ ByVal hObject As Long) As Long Private Declare Function ExtFloodFill Lib "gdi32.dll" ( _ ByVal hdc As Long, _ ByVal nXStart As Long, _ ByVal nYStart As Long, _ ByVal crColor As Long, _ ByVal fuFillType As Long) As Long Private Declare Function SelectObject Lib "gdi32.dll" ( _ ByVal hdc As Long, _ ByVal hObject As Long) As Long Private Declare Function RoundRect Lib "gdi32.dll" ( _ ByVal hdc As Long, _ ByVal nLeftRect As Long, _ ByVal nTopRect As Long, _ ByVal nRightRect As Long, _ ByVal nBottomRect As Long, _ ByVal nWidth As Long, _ ByVal nHeight As Long) As Long ' Füllt von der angegebenen Position bis zu der angegebenen ' Farbe "crColor" mit dem aktuell gewähltem Brush. ' Diese Methode füllt keine Bereiche, die mit "crColor" ' umschlossen sind. Private Const FLOODFILLBORDER = 0 ' Überschreibt die Farbe "crColor" mit dem aktuell gewähltem ' Brush Private Const FLOODFILLSURFACE = 1
Private Sub Form_Load() ' ScaleMode vbPixel! Me.ScaleMode = vbPixels ' AutoRedraw Me.AutoRedraw = True End Sub
' Form.AutoredDraw sollte True sein, damit der Fensterinhalt ' angezeigt wird. Private Sub Form_Resize() Dim RetVal As Long, hBrush As Long Dim hOldBrush As Long, RndCol As Long ' Bei einem Minimieren-Ereignis tritt sonst ein Fehler auf On Error Resume Next ' Inhalt der Form löschen Me.Cls ' Rechteck auf der Form zeichnen RetVal = RoundRect(Me.hdc, Me.ScaleWidth / 3, _ Me.ScaleHeight / 3, Me.ScaleWidth / 3 * 2, _ Me.ScaleHeight / 3 * 2, 20, 20) ' Brush mit zufälliger Farbe erstellen Randomize Timer 'Zufallszahlen neu berechnen RndCol = RGB(CInt(Rnd() * 255 + 1), _ CInt(Rnd() * 255 + 1), CInt(Rnd() * 255 + 1)) hBrush = CreateSolidBrush(RndCol) ' Brush zuweisen und alten Brush zwischenspeichern hOldBrush = SelectObject(Me.hdc, hBrush) ' Den inneren Bereich des Rechtecks mit dem Brush der Form ' füllen RetVal = ExtFloodFill(Me.hdc, Me.ScaleWidth / 2, _ Me.ScaleHeight / 2, vbBlack, FLOODFILLBORDER) ' Den Orginal-Brush wiederherstellen RetVal = SelectObject(Me.hdc, hOldBrush) ' Den angelegten Brush zerstören DeleteObject hBrush End Sub